Ruby Event Manager / Scheduler


#1

In the scope of a project management tool development, we would need to
create an automated process that would trigger certain actions (read
some ruby code) based on certain dates (as defined by the project).
This would be triggered from the application server in back-end.

I currently have no idea on how to proceed and that’s the reason why
I’m posting this message. Any advices, suggestions welcomed.

Thx


#2

I have considered writing a cron-like system in pure Ruby, as it would
allow the type of scheduling you are talking about on all platforms in
a consistent manner. At the moment we have cron on Unix systems,
Scheduled Tasks on Windows, etc., all of which operate differently.

I haven’t yet created this system, but I have played with some of the
ideas. The way I was going was to have a server process with a thread
that wakes up every 10 seconds or so, checks the date and time against
tasks that need to be run, and any tasks that have “expired” times
would be run in their own threads. It is pretty simple, and a basic
version would be easy to code. The complexity comes when you try to
provide complex scheduling rules (i.e. “run this task M-F at 2AM from
May to September.”) But if you just have simple date and time based
scheduling rules, this will be easy.

Ryan


#3

On Dec 6, 2005, at 11:01 AM, Ryan L. wrote:

I have considered writing a cron-like system in pure Ruby, as it would
allow the type of scheduling you are talking about on all platforms in
a consistent manner. At the moment we have cron on Unix systems,
Scheduled Tasks on Windows, etc., all of which operate differently.

Have you seen Daedalus?

http://www.freshports.org/sysutils/daedalus/

James Edward G. II


#4

On Wed, 7 Dec 2005, Ryan L. wrote:

version would be easy to code. The complexity comes when you try to
provide complex scheduling rules (i.e. “run this task M-F at 2AM from
May to September.”) But if you just have simple date and time based
scheduling rules, this will be easy.

this would help

http://runt.rubyforge.org/

-a


#5

On 12/6/05, James Edward G. II removed_email_address@domain.invalid wrote:

Have you seen Daedalus?

http://www.freshports.org/sysutils/daedalus/

Yes, but that just makes sure that processes are kept running. It
isn’t a scheduling system.

Ryan


#6

Thanks for the hint on runt, I’ll sure have a look at it