Hi all,
I signed up using my google account so please delete my @
is.co.za
account if you want.
We've identified some gaps in functionality that we'd like from
TheSchwartz, and I was wondering how to go about implementing them...
First, let me detail what we plan to add:
1) Persistent jobs: A persistent job will stay in the database after
it's completed, so that the next time it's worker polls the database,
it will have a job to do. I know this is potentially pointless, and
should rather just cron a job insertion, but, I'd like to keep
everything encapsulated in TheSchwartz.
2) Worker heartbeats. For workers that work() as opposed to
work_once(), etc, I'd like them to have a heartbeat and announce
they're still alive every n iterations. This poses a small problem in
that you might have the same worker doing the same thing on more than
one machine (or even on the same machine)... so, that exposes the need
to uniquely identify a worker.
3) Performance/Capacity management: Currently, TheSchwartz doesnt
store the status of successfully completed jobs, only ones that failed
in the error table. We'd like to start storing the state of
successfully completed jobs too, possibly with some performance data,
like how many Time::Hires seconds a job took to perform. This has a
few other problems in that we'd need to start rolling up the data to
avoid filling up the database. I'm loathe to store this data in RRD.
So, my BIG question is this: Should I add to the main TheSchwartz
distribution? Or do I start a TheSchwartzX fork? Your advice will be
highly appreciated.