Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Just quickly skimmed this, but it seems the conclusion is wrong:

A job needs two attributes to define when it should be started: run_at and max_latency. That means the job worker only needs to order them by run_at + max_latency, and takes the first. It seems both flexible and simple.

Just considering two jobs (run_at=10,max_latency=15), (run_at=11,max_latency=13), it's clear that following that approach, the first task would be unnecessarily blocked by the second, or you'd run jobs earlier than run_at specified.



I guess the actual way is like `where run_at <= now() order by (run_at+max_latency)`


i guess the messages should be sorted by that tuple (run_at, max_latency), and only if they miss the run_at, then run_at+max_latency comes into play. Or something even more twisted.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: