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.
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
···
On 12/6/05, eDreamers <bpotier@gmail.com> wrote:
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.
On Dec 6, 2005, at 11:01 AM, Ryan Leavengood 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.
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.
--
ara [dot] t [dot] howard [at] noaa [dot] gov
all happiness comes from the desire for others to be happy. all misery
comes from the desire for oneself to be happy.
-- bodhicaryavatara