guoziyun vor 9 Monaten
Ursprung
Commit
b50daba45e

+ 7 - 4
oms/dist/services/cron-jobs/done-rate.js

@@ -26,6 +26,9 @@ async function run() {
     const yesterdayYYYYMMDD = yesterday.format("YYYYMMDD");
     const yesterdayStart = yesterday.startOf("day").toDate();
     const yesterdayEnd = yesterday.endOf("day").toDate();
+    // 格式化日期字符串,使其符合 ClickHouse 的 toDateTime() 函数要求
+    const yesterdayStartString = (0, dayjs_1.default)(yesterdayStart).format("YYYY-MM-DD HH:mm:ss");
+    const yesterdayEndString = (0, dayjs_1.default)(yesterdayEnd).format("YYYY-MM-DD HH:mm:ss");
     console.log(`[DoneRate Cron] Processing data for date: ${yesterdayYYYYMMDD}`);
     let remoteConn = null;
     let updatedRemoteArtworksCount = 0;
@@ -38,8 +41,8 @@ async function run() {
           count(DISTINCT uid) AS unique_starts
       FROM ${CLICKHOUSE_EVENTS_TABLE}
       WHERE event = 'color_start'
-        AND time >= toDateTime('${(0, dayjs_1.default)(yesterdayStart).toISOString()}')
-        AND time < toDateTime('${(0, dayjs_1.default)(yesterdayEnd).toISOString()}')
+        AND time >= toDateTime('${yesterdayStartString}')
+        AND time < toDateTime('${yesterdayEndString}')
       GROUP BY res
       HAVING res IS NOT NULL
     `;
@@ -61,8 +64,8 @@ async function run() {
           count(DISTINCT uid) AS unique_dones
       FROM ${CLICKHOUSE_EVENTS_TABLE}
       WHERE event = 'color_done'
-        AND time >= toDateTime('${(0, dayjs_1.default)(yesterdayStart).toISOString()}')
-        AND time < toDateTime('${(0, dayjs_1.default)(yesterdayEnd).toISOString()}')
+        AND time >= toDateTime('${yesterdayStartString}')
+        AND time < toDateTime('${yesterdayEndString}')
       GROUP BY res
       HAVING res IS NOT NULL
     `;

+ 1 - 1
oms/dist/services/cron-jobs/index.js

@@ -12,7 +12,7 @@ const database_1 = require("../../src/database");
 const settings = [
     // 假设这些文件将存在于 oms/services/cron-jobs/ 目录下
     ["sync", "*/10 * * * *", require("./sync/sync-service")], // 每10分钟跑一次同步
-    ["done-rate", "33 0 * * *", require("./done-rate")], // 每天凌晨0点10分, 统计作品完成率
+    ["done-rate", "38 0 * * *", require("./done-rate")], // 每天凌晨0点10分, 统计作品完成率
     ["daily-activity-detector", "50 0 * * *", require("./daily-activity-detector")], // 每天凌晨0点50分, 检查是否需要生成新的推送消息
     ["message-sender", "*/5 * * * *", require("./message-sender")], // 每5分钟运行一次
 ];

+ 8 - 4
oms/services/cron-jobs/done-rate.ts

@@ -44,6 +44,10 @@ async function run(): Promise<string> {
   const yesterdayStart = yesterday.startOf("day").toDate();
   const yesterdayEnd = yesterday.endOf("day").toDate();
 
+  // 格式化日期字符串,使其符合 ClickHouse 的 toDateTime() 函数要求
+  const yesterdayStartString = dayjs(yesterdayStart).format("YYYY-MM-DD HH:mm:ss");
+  const yesterdayEndString = dayjs(yesterdayEnd).format("YYYY-MM-DD HH:mm:ss");
+
   console.log(`[DoneRate Cron] Processing data for date: ${yesterdayYYYYMMDD}`);
 
   let remoteConn: Connection | null = null;
@@ -59,8 +63,8 @@ async function run(): Promise<string> {
           count(DISTINCT uid) AS unique_starts
       FROM ${CLICKHOUSE_EVENTS_TABLE}
       WHERE event = 'color_start'
-        AND time >= toDateTime('${dayjs(yesterdayStart).toISOString()}')
-        AND time < toDateTime('${dayjs(yesterdayEnd).toISOString()}')
+        AND time >= toDateTime('${yesterdayStartString}')
+        AND time < toDateTime('${yesterdayEndString}')
       GROUP BY res
       HAVING res IS NOT NULL
     `;
@@ -82,8 +86,8 @@ async function run(): Promise<string> {
           count(DISTINCT uid) AS unique_dones
       FROM ${CLICKHOUSE_EVENTS_TABLE}
       WHERE event = 'color_done'
-        AND time >= toDateTime('${dayjs(yesterdayStart).toISOString()}')
-        AND time < toDateTime('${dayjs(yesterdayEnd).toISOString()}')
+        AND time >= toDateTime('${yesterdayStartString}')
+        AND time < toDateTime('${yesterdayEndString}')
       GROUP BY res
       HAVING res IS NOT NULL
     `;

+ 1 - 1
oms/services/cron-jobs/index.ts

@@ -14,7 +14,7 @@ interface CronJobModule {
 const settings: [string, string, CronJobModule][] = [
   // 假设这些文件将存在于 oms/services/cron-jobs/ 目录下
   ["sync", "*/10 * * * *", require("./sync/sync-service") as CronJobModule], // 每10分钟跑一次同步
-  ["done-rate", "33 0 * * *", require("./done-rate") as CronJobModule], // 每天凌晨0点10分, 统计作品完成率
+  ["done-rate", "38 0 * * *", require("./done-rate") as CronJobModule], // 每天凌晨0点10分, 统计作品完成率
   ["daily-activity-detector", "50 0 * * *", require("./daily-activity-detector") as CronJobModule], // 每天凌晨0点50分, 检查是否需要生成新的推送消息
   ["message-sender", "*/5 * * * *", require("./message-sender") as CronJobModule], // 每5分钟运行一次
 ];