mirror of
https://github.com/strapi/strapi.git
synced 2025-09-01 04:42:58 +00:00
Added timezone for cron jobs
Signed-off-by: Shabab Karim <shababkarim93@gmail.com>
This commit is contained in:
parent
fad9fda318
commit
75c3ff9aab
@ -297,6 +297,27 @@ module.exports = {
|
||||
};
|
||||
```
|
||||
|
||||
If your CRON task is required to run based on a specific timezone then you can configure the task like below:
|
||||
|
||||
```js
|
||||
module.exports = {
|
||||
/**
|
||||
* CRON task with timezone example.
|
||||
* Every monday at 1am for Asia/Dhaka timezone.
|
||||
* List of valid timezones: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
|
||||
*/
|
||||
|
||||
'0 0 1 * * 1': {
|
||||
task: () => {
|
||||
// Add your own logic here (e.g. send a queue of email, create a database backup, etc.).
|
||||
},
|
||||
options: {
|
||||
tz: 'Asia/Dhaka',
|
||||
},
|
||||
},
|
||||
};
|
||||
```
|
||||
|
||||
### Database ORM customization
|
||||
|
||||
When present, they are loaded to let you customize your database connection instance, for example for adding some plugin, customizing parameters, etc.
|
||||
|
@ -24,7 +24,7 @@ The goal will be to check every minute if there are draft articles that have a `
|
||||
|
||||
To execute a function every minutes, we will use a CRON task.
|
||||
|
||||
Here is the [full documentation](../concepts/configurations.md#cron-tasks) of this feature.
|
||||
Here is the [full documentation](../concepts/configurations.md#cron-tasks) of this feature. If your CRON task requires to run based on a specific timezone then do look into the full documentation.
|
||||
|
||||
**Path —** `./config/functions/cron.js`
|
||||
|
||||
|
@ -20,8 +20,25 @@ module.exports = strapi => {
|
||||
|
||||
initialize() {
|
||||
if (strapi.config.get('server.cron.enabled', false) === true) {
|
||||
_.forEach(_.keys(strapi.config.get('functions.cron', {})), task => {
|
||||
cron.scheduleJob(task, strapi.config.functions.cron[task]);
|
||||
_.forEach(_.keys(strapi.config.get('functions.cron', {})), taskExpression => {
|
||||
const taskValue = strapi.config.functions.cron[taskExpression];
|
||||
const isFunctionValue = _.isFunction(taskValue);
|
||||
|
||||
if (isFunctionValue) {
|
||||
cron.scheduleJob(taskExpression, strapi.config.functions.cron[taskExpression]);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
const options = _.get(strapi.config.functions.cron[taskExpression], 'options', {});
|
||||
|
||||
cron.scheduleJob(
|
||||
{
|
||||
rule: taskExpression,
|
||||
...options,
|
||||
},
|
||||
strapi.config.functions.cron[taskExpression]['task']
|
||||
);
|
||||
});
|
||||
}
|
||||
},
|
||||
|
Loading…
x
Reference in New Issue
Block a user