2016-09-26 92 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);