https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=17690
Bug ID: 17690
Summary: Use task scheduler daemon
Change sponsored?: ---
Product: Koha
Version: master
Hardware: All
OS: All
Status: NEW
Severity: enhancement
Priority: P5 - low
Component: Task Scheduler
Assignee: [email protected]
Reporter: [email protected]
QA Contact: [email protected]
As part of my work for #10662, I've been building a task scheduler daemon,
which will schedule and execute tasks in the background.
Originally, I was going to include it in that patch, but it's a hefty daemon,
so I've decided to open up a separate ticket.
There are a few existing bugs that talk about task schedulers (#1993, #14712,
#13813, #3935), but nothing has really been proposed yet.
So I wrote my own task scheduler daemon, which I've dubbed Icarus. The master
process is event-driven using POE with a single thread, and tasks are executed
in child processes using POE::Wheel::Run. You can communicate with Icarus by
sending JSON requests over a Unix socket.
At the moment, I've only written tasks to download and upload OAI-PMH documents
to a API (defined in #10662), but you could use it for anything.
In terms of scheduling, it uses specific timestamps, and you can set up
periodic tasks by defining the number of seconds to wait until you execute the
task again. In the future, I'd like to add a cron-style syntax, which allows
you to have a more granular control over the periodicity.
It's similar in concept to Celery (http://www.celeryproject.org/), although
Celery is written in Python and much more mature. I haven't found a Perl-based
project which is as full-featured. While FIFO job queues abound, a periodic
task scheduler seems quite a bit more rare.
I'm going to post the API to #10662 soon, and after that I'll look at posting
Icarus here. I still have more unit tests to write for it in the meantime.
--
You are receiving this mail because:
You are watching all bug changes.
_______________________________________________
Koha-bugs mailing list
[email protected]
http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-bugs
website : http://www.koha-community.org/
git : http://git.koha-community.org/
bugs : http://bugs.koha-community.org/