I have written a plugin that defines an on demand scheduled job. It works exactly as intended, EXCEPT, it runs once when the plugin is first installed.
How would I prevent that?
Addendum: It actually runs every time the application starts up
I have written a plugin that defines an on demand scheduled job. It works exactly as intended, EXCEPT, it runs once when the plugin is first installed.
How would I prevent that?
Addendum: It actually runs every time the application starts up
Hi Robert,
How did you configure the scheduled job? If you are not already, consider using the job-config
module in atlassian-plugin.xml
. This allows you to have very fine control over how to configure the scheduled job including how it behaves in clusters and whether it can be run ad-hoc. Most importantly, you can define a cron-expression or an interval to control the schedule at which the job runs.
Have a look at this job-config module document for the full reference.
Yes, I did that. I set adhoc to true and repeat-interval to zero, because I only want it to run on demand.
<job-config name="Attachment Report" key="attachmentReport">
<job key="attachmentReport" perClusterJob="true" clusteredOnly="false"/>
<schedule repeat-interval="0"/>
<managed editable="false" keepingHistory="true" canRunAdhoc="true" canDisable="true"/>
</job-config>
Hi again @RobertEgan!
Looking at the docs, it doesn’t explicitly mention any way to configure the schedule
to never run. Even setting repeat-count
to 0
means that it runs once.
Therefore, I can suggest that you try changing the schedule
to a cron expression that is never executed. For example, a date in the past or far away in the future. Alternatively, if you can get away with it, try to use this expression 0 0 5 31 2 ?
which runs on the 31st of Feb (so never!). Reference.