1、首先通過 composer 安裝workerman,在thinkphp5完全開發手冊的擴展-》coposer包-》workerman有詳細說明:
#在項目根目錄執行以下指令
composer require topthink/think-worker
2.在項目根目錄創建服務啟動文件 server.php:
<?php
define('APP_PATH', __DIR__ . '/application/');
define("BIND_MODULE", "server/Worker");
// 加載框架引導文件
require __DIR__ . '/thinkphp/start.php';
3、在application里創建server模塊,並在server里創建控制器 Worker.php:
<?php
namespace app\server\controller;
use think\worker\Server;
class Worker extends Server
{
protected $processes=1;
public function onWorkerStart($work)
{
$handle=new Index();
$handle->add_timer();
}
}
4.創建Index.php類.定義一個每秒鍾執行一次的定時器,在定時器里增加條件判斷,當當前時間等於要執行的時間時,就執行此任務
<?php
namespace app\server\controller;
use Workerman\Lib\Timer;
class Index
{
public function add_timer(){
Timer::add(1, array($this, 'index'), array(), true);
}
public function index(){
//每天0點執行任務
if(time()/86400===0){
echo date("Y-m-d H:i:s");
}
//每天8點執行任務
if(time()/86400===28800){
echo date("Y-m-d H:i:s");
}
}
5、啟動服務 php server.php start -d
