perf: app cron job (#3360)
This commit is contained in:
27
projects/app/src/pages/api/admin/initv4815.ts
Normal file
27
projects/app/src/pages/api/admin/initv4815.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import type { NextApiRequest, NextApiResponse } from 'next';
|
||||
import { authCert } from '@fastgpt/service/support/permission/auth/common';
|
||||
import { NextAPI } from '@/service/middleware/entry';
|
||||
import { MongoApp } from '@fastgpt/service/core/app/schema';
|
||||
|
||||
/* 初始化发布的版本 */
|
||||
async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||
await authCert({ req, authRoot: true });
|
||||
|
||||
// scheduledTriggerConfig为 null 的,都转成 unExist
|
||||
return MongoApp.updateMany(
|
||||
{
|
||||
$or: [
|
||||
{ scheduledTriggerConfig: { $eq: null } },
|
||||
{ 'scheduledTriggerConfig.cronString': { $eq: '' } }
|
||||
]
|
||||
},
|
||||
{
|
||||
$unset: {
|
||||
scheduledTriggerConfig: '',
|
||||
scheduledTriggerNextTime: ''
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
export default NextAPI(handler);
|
||||
@@ -10,6 +10,7 @@ import { PostPublishAppProps } from '@/global/core/app/api';
|
||||
import { WritePermissionVal } from '@fastgpt/global/support/permission/constant';
|
||||
import { ApiRequestProps } from '@fastgpt/service/type/next';
|
||||
import { AppTypeEnum } from '@fastgpt/global/core/app/constants';
|
||||
import { getScheduleTriggerApp } from '@/service/core/app/utils';
|
||||
|
||||
async function handler(
|
||||
req: ApiRequestProps<PostPublishAppProps>,
|
||||
@@ -52,12 +53,17 @@ async function handler(
|
||||
updateTime: new Date(),
|
||||
version: 'v2',
|
||||
// 只有发布才会更新定时器
|
||||
...(isPublish && {
|
||||
scheduledTriggerConfig: chatConfig?.scheduledTriggerConfig,
|
||||
scheduledTriggerNextTime: chatConfig?.scheduledTriggerConfig?.cronString
|
||||
? getNextTimeByCronStringAndTimezone(chatConfig.scheduledTriggerConfig)
|
||||
: null
|
||||
}),
|
||||
...(isPublish &&
|
||||
(chatConfig?.scheduledTriggerConfig?.cronString
|
||||
? {
|
||||
$set: {
|
||||
scheduledTriggerConfig: chatConfig.scheduledTriggerConfig,
|
||||
scheduledTriggerNextTime: getNextTimeByCronStringAndTimezone(
|
||||
chatConfig.scheduledTriggerConfig
|
||||
)
|
||||
}
|
||||
}
|
||||
: { $unset: { scheduledTriggerConfig: '', scheduledTriggerNextTime: '' } })),
|
||||
'pluginData.nodeVersion': _id
|
||||
},
|
||||
{
|
||||
@@ -66,6 +72,8 @@ async function handler(
|
||||
);
|
||||
});
|
||||
|
||||
await getScheduleTriggerApp();
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user