迁移到版本 strapi-3.0.0 后,Strapi Cron 不起作用
Strapi Cron doesn't work after migrating to version strapi-3.0.0
cron一般在strapi-3.0.0-beta.20版本运行
但在迁移到版本 strapi-3.0.0
后它不起作用
Strapi-3.0.0-beta.20
./config/environments/{env}/server.json
{
"host": "0.0.0.0",
"port": 1337,
"proxy": {
"enabled": false
},
"cron": {
"enabled": true
},
"admin": {
"autoOpen": false
}
}
Strapi-3.0.0
./config/server.js
module.exports = ({ env }) => ({
host: '0.0.0.0',
port: env.int('PORT', '1337'),
production: env('NODE_ENV') === 'production' ? true : false,
proxy: {
enabled: false
},
cron: {
enabled: true
},
admin: {
autoOpen: false
}
})
这是使用 server.js
的 strapi 代码
strapi/packages/strapi/lib/middlewares/cron/index.js
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]);
});
这是github issue中注册的内容。
描述错误
新配置加载器文档中的信息不正确
预期行为
关于 cron 设置的文档中可能存在误解。
这是启动cron的设置(3.0.0.beta.20)
./config/environments/{环境}/server.json
{
"host": "0.0.0.0",
"port": 1337,
"cron": {
"enabled": true
}
}
关于如何迁移指南的文档是这样的。
Migrating
Server
Your server configuration can move from ./config/environments/{env}/server.json to
./config/server.js like shown here.
Server
可用选项 -> cron
但是,要在 3.0.0 版本中启用 cron 必须在 middleware.js
./config/middleware.js
timeout: 100,
load: {
before: ['responseTime', 'logger', 'cors', 'responses', 'gzip'],
order: [
"Define the middlewares' load order by putting their name in this array is the right order"
],
after: ['parser', 'router']
},
settings: {
...
cron: { enabled: true }
...
}
代码片段
查看代码(strapi/middlewares/index.js)得知应该在中间件中设置
系统
- Node.js 版本:v12.14.0
- NPM 版本:6.13.6
- Strapi 版本:3.0.0
- 数据库:mongodb
- 操作系统:window、linux
cron一般在strapi-3.0.0-beta.20版本运行 但在迁移到版本 strapi-3.0.0
后它不起作用Strapi-3.0.0-beta.20
./config/environments/{env}/server.json
{
"host": "0.0.0.0",
"port": 1337,
"proxy": {
"enabled": false
},
"cron": {
"enabled": true
},
"admin": {
"autoOpen": false
}
}
Strapi-3.0.0
./config/server.js
module.exports = ({ env }) => ({
host: '0.0.0.0',
port: env.int('PORT', '1337'),
production: env('NODE_ENV') === 'production' ? true : false,
proxy: {
enabled: false
},
cron: {
enabled: true
},
admin: {
autoOpen: false
}
})
这是使用 server.js
的 strapi 代码strapi/packages/strapi/lib/middlewares/cron/index.js
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]);
});
这是github issue中注册的内容。
描述错误 新配置加载器文档中的信息不正确
预期行为 关于 cron 设置的文档中可能存在误解。
这是启动cron的设置(3.0.0.beta.20) ./config/environments/{环境}/server.json
{
"host": "0.0.0.0",
"port": 1337,
"cron": {
"enabled": true
}
}
关于如何迁移指南的文档是这样的。 Migrating
Server
Your server configuration can move from ./config/environments/{env}/server.json to
./config/server.js like shown here.
Server 可用选项 -> cron
但是,要在 3.0.0 版本中启用 cron 必须在 middleware.js
./config/middleware.js
timeout: 100,
load: {
before: ['responseTime', 'logger', 'cors', 'responses', 'gzip'],
order: [
"Define the middlewares' load order by putting their name in this array is the right order"
],
after: ['parser', 'router']
},
settings: {
...
cron: { enabled: true }
...
}
代码片段 查看代码(strapi/middlewares/index.js)得知应该在中间件中设置
系统 - Node.js 版本:v12.14.0 - NPM 版本:6.13.6 - Strapi 版本:3.0.0 - 数据库:mongodb - 操作系统:window、linux