第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何更改 laravel 工作時(shí)間

如何更改 laravel 工作時(shí)間

PHP
飲歌長(zhǎng)嘯 2023-06-18 17:59:29
我正在為客戶開發(fā)應(yīng)用程序,他想在特殊時(shí)間開始一些工作,我必須在工作中運(yùn)行它,對(duì)嗎?例如,他想發(fā)布一個(gè)帖子,有 2 個(gè)狀態(tài)已發(fā)布或正在等待,并且在發(fā)送頁(yè)面中,他可以設(shè)置發(fā)布帖子的時(shí)間,我如何在工作中開發(fā)這個(gè)?ScanJob::dispatch($property->Name, $property->Owner, $Scan->id)->delay(Carbon::now()->addHour(Carbon::now()->diffInHours($Time)));這是我第一次嘗試以小時(shí)為單位獲取差異時(shí)間并從延遲中添加它
查看完整描述

1 回答

?
收到一只叮咚

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊

基本上有兩種方法可以解決您的問題:

  1. 創(chuàng)建一個(gè) Laravel Artisan 命令(您也可以使用 Laravel 提供的其他方法,但我發(fā)現(xiàn) Artisan 更有趣且更靈活,有助于避免返工)并相應(yīng)地安排它。

  2. 創(chuàng)建一個(gè)隊(duì)列作業(yè)并在稍后派發(fā)它,但它有一些限制,例如 Amazon SQS 隊(duì)列服務(wù)的最大延遲時(shí)間為 15 分鐘。

現(xiàn)在,要做的是:

  1. 在我看來,您應(yīng)該使用解決方案 1,因?yàn)樗`活并且給您更多的控制權(quán)。

  2. 隊(duì)列用于兩件事。首先,理想情況下,您要執(zhí)行的任務(wù)應(yīng)在接下來的 30-45 分鐘內(nèi)完成。其次,任務(wù)是時(shí)間密集型的,您不想因此而阻塞線程。

現(xiàn)在是有趣的部分。注意:您不必?fù)?dān)心,Laravel 會(huì)為您執(zhí)行大部分步驟。為了不跳過知識(shí),我提到了每一步。

第 1 步:運(yùn)行以下命令創(chuàng)建一個(gè) Artisan 控制臺(tái)命令(記住要在項(xiàng)目的根路徑中。):

php?artisan?make:command?PublishSomething

該命令現(xiàn)在可用于進(jìn)一步開發(fā),網(wǎng)址為app/Console/Commands。

第 2 步handle:您將在類中看到一個(gè)方法,如下所示,這是您所有邏輯所在的地方。

<?php


namespace App\Console\Commands;


use Illuminate\Console\Command;


class PublishSomething extends Command

{

? ? /**

? ? ?* The name and signature of the console command.

? ? ?*

? ? ?* @var string

? ? ?*/

? ? protected $signature = 'something:publish';


? ? /**

? ? ?* The console command description.

? ? ?*

? ? ?* @var string

? ? ?*/

? ? protected $description = 'Publishes something amazing!';


? ? /**

? ? ?* Create a new command instance.

? ? ?*

? ? ?* @return void

? ? ?*/

? ? public function __construct()

? ? {

? ? ? ? parent::__construct();

? ? }


? ? /**

? ? ?* Execute the console command.

? ? ?*

? ? ?* @return mixed

? ? ?*/

? ? public function handle()

? ? {

? ? ? ? //

? ? }

}

第 3 步:讓我們?cè)?handle 方法中添加一些邏輯


/**

?* Execute the console command.

?*

?* @return mixed

?*/

public function handle()

{

? ? $this->info('Publishing something cool!');

? ? // you can add your own custom logic here.

}

第 4 步:添加邏輯后,現(xiàn)在我們需要對(duì)其進(jìn)行測(cè)試,您可以這樣做:


php artisan something:publish


第 5 步:我們的功能運(yùn)行正?!,F(xiàn)在我們將安排命令。在里面app/Console你會(huì)發(fā)現(xiàn)一個(gè)文件Console.php,這個(gè)類負(fù)責(zé)所有的任務(wù)調(diào)度注冊(cè),在我們的例子中。


<?php


namespace App\Console;


use Illuminate\Console\Scheduling\Schedule;

use Illuminate\Foundation\Console\Kernel as ConsoleKernel;


class Kernel extends ConsoleKernel

{

? ? /**

? ? ?* The Artisan commands provided by your application.

? ? ?*

? ? ?* @var array

? ? ?*/

? ? protected $commands = [

? ? ? ? //

? ? ];


? ? /**

? ? ?* Define the application's command schedule.

? ? ?*

? ? ?* @param? \Illuminate\Console\Scheduling\Schedule? $schedule

? ? ?* @return void

? ? ?*/

? ? protected function schedule(Schedule $schedule)

? ? {

? ? ? ? // $schedule->command('inspire')->hourly();

? ? }


? ? /**

? ? ?* Register the commands for the application.

? ? ?*

? ? ?* @return void

? ? ?*/

? ? protected function commands()

? ? {

? ? ? ? $this->load(__DIR__.'/Commands');


? ? ? ? require base_path('routes/console.php');

? ? }

}

注意這里的調(diào)度函數(shù),這是我們將添加調(diào)度邏輯的地方。


第 6 步:現(xiàn)在我們將安排我們的命令每 5 分鐘運(yùn)行一次。你可以很容易地改變時(shí)間段,Laravel 提供了一些預(yù)制的頻率選項(xiàng),你也有自己的自定義時(shí)間表。


/**

?* Define the application's command schedule.

?*

?* @param? \Illuminate\Console\Scheduling\Schedule? $schedule

?* @return void

?*/

protected function schedule(Schedule $schedule)

{

? ? $schedule->command('something:publish')->everyFiveMinutes(); // our schedule

}

第 7 步:現(xiàn)在,Laravel 的任務(wù)調(diào)度程序本身依賴于 Cron。因此,要啟動(dòng)計(jì)劃,我們將以下文件添加到我們的 crontab。


* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

就是這樣!我們完了。您已經(jīng)創(chuàng)建了自己的自定義命令并計(jì)劃每 5 分鐘執(zhí)行一次。

查看完整回答
反對(duì) 回復(fù) 2023-06-18
  • 1 回答
  • 0 關(guān)注
  • 168 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)