We need to schedule some tasks in Plone 4 (notify users after n days of inactivity, etc.). What is the best way to do it? Is there something in Plone or maybe an old cron job? I would like to avoid cron4plone.
Simply use the built-in <clock-server>
functionality in zope.conf; list them in the zope-conf-additional
option of plone.recipe.zope2instance
:
zope-conf-additional =
<clock-server>
method /Plone/path/to/callable
period 7200
user username-to-invoke-method-with
password password-for-user
host localhost
</clock-server>
The above snippet will call /Plone/path/to/callable
every 2 hours, with the Host header set to localhost
with the configured user and password.
The clock-server was added to Zope 2.10; before this it was a separate product by Chris McDonough. I generally created dedicated views for such tasks.
The alternative is to use a cron job to call either a view (usually with wget
or cron
) or a zopectl command line script. I use this when I need precise control over when the script needs to be executed, such as at midnight every day.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With