2016-09-26 129 views
1

我正在使用「」davibennun/laravel-push-notification「:」dev-laravel5「」來發送推送通知。我想要的是延遲發送通知後,但不想停止進程。有什麼想法,我怎麼能做到這一點,或者這可能嗎?延遲laravel推送通知5秒

以下是發送推送通知的代碼:

 $pushNotification = PushNotification::app('appNameAndroid')->to($token); 
    $pushNotification->adapter->setAdapterParameters(['sslverifypeer' => false]); 
    $pushNotification->send($message); 

在此先感謝。

+1

除非庫本身提供了這樣做的手段,恐怕你堅持['sleep'(HTTP:// PHP。淨/睡眠)。當然,你可以做一些非常複雜的事情,比如在未來創建一個X秒的隊列,但老實說,這似乎是主要的矯枉過正。事實上,我收回它,一個隊列可能正是你正在尋找的。 – Andrew

+0

@Andrew我會嘗試使用隊列。感謝您的建議。 –

+0

@Andrew你有任何例子如何做到這一點? –

回答

1

我發現如何做到這一點。 以下是步驟。

  1. 運行以下命令

    PHP工匠隊列:表
    PHP工匠遷移

  2. 變化.ENV

    QUEUE_DRIVER =數據庫

  3. 創建工作

    PHP的工匠製作:作業作業名

//在工作文件

  • 我在我的工作文件中提及2保護變量

    $消息,$ deviceToken

  • In _construct i爲上述變量賦值。

    公共函數__construct($ deviceToken,$消息)

    { 
        $this->deviceToken = $deviceToken; 
        $this->message = $message; 
    } 
    
  • 在手柄方法

    $ pushNotification = PushNotification ::應用程式( 'appNameAndroid') - >到($這 - > deviceToken ); $ pushNotification-> adapter-> setAdapterParameters(['sslverifypeer'=> false]); $ pushNotification-> send($ this-> message);

  • //在我的控制器

    $job = (new JobName($deviceToken, $message))->delay(10); 
    
    $this->dispatch($job);