Schedule tasks with one line using iris-cron-task
Hi, folks!
Sometimes I need to schedule a task programmatically.
And in 99% I need having some class method be periodically called.
And I want to have the schedule be started by one line. As a job in crontab.
I decided to introduce such a module with iris-cron-task module.
See the details below!
Install the module with:
USER>zpm "install iris-cron-task"
And then you'll be able to schedule tasks with one line.
E.g. if I want the following command
set ^A($I(^A))=$H
be started every minute I can call the following:
zw ##class(dc.cron.task).Start("Task name","* * * * *","set ^A($I(^A))=$H",1,.taskid)
this will create a task with taskid which will run every minute.
When you don't need the task any more you can delete it with:
zw ##class(dc.cron.task).Kill(taskid)
I supported only a few cron settings, like every minute:
* * * * *
Every hour:
0 * * * *
And every day in a certain hour:
0 0 * * *
You could find useful the cronmaker site to get the cron expression for any schedule you need.
Thanks to @Lorenzo Scalese for introducing support for an arbitrary cron expression.
PR are welcome if you need more!
Hope you like it, any feedback is appreciated!
That's really cool. I had a need for exactly this functionality a while back but had to find a different solution. I wish I had this then.
Thanks, Nigel! Yes, my motivation to publish it was laziness) It's annoying to create a yet-another-class or method just to have something perpetually running )
The support for arbitrary cron expression is introduced with the 1.1.1 release.
The support of any cron expression is introduced by @Lorenzo Scalese, thank you!
Glad to contribute!
Very good!
I translated your article into Portuguese
Obrigado, Larissa! I appreciate!
@Larissa Prussak !
I'm checking the translation - if the USER Namespace is named USUÁRIO in IRIS with Portuguese local?
No, the USER Namespace still USER Namespace in a Portuguese installation.
PS: article fixed
Social networks
InterSystems resources
Log in or sign up
Log in or create a new account to continue
Log in or sign up
Log in or create a new account to continue
Log in or sign up
Log in or create a new account to continue