我的問題是:如果該狀態在 30 天內沒有任何更新,則自動更新訂單狀態。
例如,當前狀態為“處理中”,在 30 天后,不再對此進行更新。所以 MySQL 自動更新訂單狀態為“on Hold”
我發現并客串了一些與 Hook 相關的東西,但我不知道如何實作它
uj5u.com熱心網友回復:
取決于你如何運行你的應用程式。我建議使用例如一些 cron 來獲取此類實體并更新其狀態。(例如https://www.npmjs.com/package/node-cron)例如將其設定為每天運行一次,查詢此類實體取決于建立在列updatedAt。或者只是添加一些其他將使用當前日期更新的列,這取決于您要應用什么規則
uj5u.com熱心網友回復:
正如 Damian 所建議的,您需要使用一種每天運行的 CRON 作業來檢查過期訂單(創建時間超過 30 天,沒有任何更新)。
您可以將Bull與PM2一起使用
在 Bull 中創建一個處理器和一個佇列,并使用 Bull 的 CRON 功能將此作業設定為通常在每天上午 12:05 或您認為合適的任何時間運行。
該作業將獲取狀態為“處理中”且創建時間超過 30 天的所有訂單并更新它們。
使用 PM2 運行 Bull
uj5u.com熱心網友回復:
你可以使用 cronjob.as npm 說 Cron 是一個允許你按計劃執行某事的工具。用于安裝 cron - ' npm i cron '
(*) 顯示順序給定的詳細資訊。
- 秒:0-59 分鐘:0-59 小時:0-23 月份:1-31 月份:0-11(1 月至 12 月) 星期:0-6(周日至周六)
如何初始化 cronjob: var CronJob = require('cron').CronJob;
var job = new CronJob(
'* * * */30 * *',
function() {
console.log('every 30 days it is auto updated!');
},
null,
true,
'America/Los_Angeles'
);
確保根據您的應用程式傳遞其他引數,并且 cron 使用與您的應用程式不同的埠。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/491400.html
