首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

Yii2 排程任務 (Cron) 開發指南:Console Controller、參數傳遞與 Windows/Linux 部署

     編輯:PHP 綜合知識

建立 Console Controller

send();
    }

    // 選項參數 (--since=2024-01-01)
    public function actionCleanup($days = 30, $dryRun = false) {
        echo "Cleanup older than $days days, dryRun: " . ($dryRun ? 'yes' : 'no') . "\n";
    }
}
?>

執行方式

環境指令
Linux/Macphp yii task/index
Windowsphp yii task/index (在專案根目錄)
帶參數php yii task/mail "user@example.com"
選項參數php yii task/cleanup 60 --dryRun=1

Linux Crontab 部署

# 編輯 crontab
crontab -e

# 每分鐘執行一次
* * * * * /usr/bin/php /var/www/project/yii task/index >> /var/log/yii_cron.log 2>&1

# 每天凌晨 3 點清理
0 3 * * * /usr/bin/php /var/www/project/yii task/cleanup 30 >> /var/log/yii_cleanup.log 2>&1

Windows 排程器部署

  1. 開啟「工作排程器」→ 建立基本任務
  2. 觸發條件:每日/每週/自訂
  3. 動作:啟動程式
  4. 程式:D:\php\php.exe
  5. 引數:D:\www\project\yii task/index
  6. 完成

進階技巧

  • 鎖機制防重複執行: 使用 yii\mutex\FileMutex 或 Redis SETNX
  • 日誌與監控: 統一輸出 JSON 格式,接入 ELK/Prometheus
  • 佇列整合: 排程僅推送 Job 至 RabbitMQ/Redis Queue,由 Worker 消費
  • 多進程並行: yii task/process --worker=1 --total=4 分片處理

相關專題

  • 《Yii 框架入門及常用技巧總結》
  • 《PHP 優秀開發框架總結》
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved