Arbyte Slides

Simon Wistow simon at
Mon Dec 1 14:57:44 GMT 2008

On Mon, Dec 01, 2008 at 12:16:45PM +0000, Alistair MacLeod said:
> Work continues on making it CPAN ready.

Some comments on Gearman and TheSchwartz which (kind of obviously) used 
quite a lot here at 6A.

You're right about Gearman in that it's "Not Reliable" but potentially 
that's a poor choice of words - "Not Guaranteed" is probably a better 
way of putting it and it's deliberately designed that way - it's for use 
as a one shot tasks that you don't mind if they fail. For example I use 
it for firing off $n web request jobs simultaneously which update a 
cache. If after a timeout they've updated the cache then fine, otherwise 
I just use the old cache version.

As for it not working - ping me off list or add an RT ticket (if you 
haven't already) and I'll take a look.

As for the TheSchwartz you say it's not easily scalable - it uses 
Data::ObjectDriver and hence has inbuilt support for sharding. And trust 
me - it's scalable. We use it for everything here which, until fairly 
recently, included all of TypePad and LiveJournal simultaneously 
(including sending out all the email) :)

Also, you say it doesn't have batching after submission - unless I'm 
misunderstanding you that's not actually true. If you look in the docs 
for TheSchwartz::Job you'll find the coalesce param to new()

Which allows batching.

Anyway, I've been thinking of writing something very similar to Arbyte 
so I'm looking forward to it. I notice you mentioned something about Jo 
bRunner::Simple that fork()s - one of the things I wnated was something 
that ran The various parts of Gearman (the injector, the Geamand and a 
number of workers) or TheSchwartz (the ibjector, the DB and a number of 
workers) all within the same process for testing purposes - is that the 
same kind of functionality that you're looking at providing?



More information about the mailing list