# Ruby Event Manager / Scheduler

**URL:** <https://www.ruby-forum.com/t/ruby-event-manager-scheduler/49576>\
**Category:** Ruby\
**Created:** [December 6, 2005, 11:25am UTC](https://www.ruby-forum.com/t/ruby-event-manager-scheduler/49576 "2005-12-06T11:25:20Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![bpotier](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/b9e5f3/32.png) [@bpotier](https://www.ruby-forum.com/u/bpotier)\
**Post date:** [December 6, 2005, 11:25am UTC](https://www.ruby-forum.com/t/ruby-event-manager-scheduler/49576/1 "2005-12-06T11:25:20Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![bpotier](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/b9e5f3/32.png) [@bpotier](https://www.ruby-forum.com/u/bpotier)\
**Post date:** [December 6, 2005, 6:01pm UTC](https://www.ruby-forum.com/t/ruby-event-manager-scheduler/49576/2 "2005-12-06T18:01:39Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![bpotier](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/b9e5f3/32.png) [@bpotier](https://www.ruby-forum.com/u/bpotier)\
**Post date:** [December 6, 2005, 6:09pm UTC](https://www.ruby-forum.com/t/ruby-event-manager-scheduler/49576/3 "2005-12-06T18:09:51Z")

</div>

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?

> **[FreshPorts -- sysutils/daedalus: Flexible process monitor/restart daemon...](https://www.freshports.org/sysutils/daedalus/)**
>
> Daedalus is a monitor/restart daemon written in ruby
> which has an extremely flexible regex-based interface
> for determining whether or not a process is running.

James Edward G. II

---

<div class="post-metadata">

**Author:** ![bpotier](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/b9e5f3/32.png) [@bpotier](https://www.ruby-forum.com/u/bpotier)\
**Post date:** [December 6, 2005, 6:18pm UTC](https://www.ruby-forum.com/t/ruby-event-manager-scheduler/49576/4 "2005-12-06T18:18:05Z")

</div>

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/](http://runt.rubyforge.org/)

-a

---

<div class="post-metadata">

**Author:** ![bpotier](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/b9e5f3/32.png) [@bpotier](https://www.ruby-forum.com/u/bpotier)\
**Post date:** [December 6, 2005, 6:30pm UTC](https://www.ruby-forum.com/t/ruby-event-manager-scheduler/49576/5 "2005-12-06T18:30:17Z")

</div>

On 12/6/05, James Edward G. II [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Have you seen Daedalus?
> 
> [FreshPorts -- sysutils/daedalus: Flexible process monitor/restart daemon written in ruby](http://www.freshports.org/sysutils/daedalus/)

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

Ryan

---

<div class="post-metadata">

**Author:** ![bpotier](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/b9e5f3/32.png) [@bpotier](https://www.ruby-forum.com/u/bpotier)\
**Post date:** [December 7, 2005, 8:40am UTC](https://www.ruby-forum.com/t/ruby-event-manager-scheduler/49576/6 "2005-12-07T08:40:59Z")

</div>

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