0
我试图通过laravel 5.1队列服务设置提醒, 工作执行并且工作正常,唯一的问题是它不会延迟工作,我不确定是否我做正确的方式,有人可以告诉我我做错了什么吗?我SetReminder作业类看起来像laravel 5.1队列作业延迟不起作用
namespace LM2\Jobs;
use LM2\Jobs\Job;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Bus\SelfHandling;
use Illuminate\Contracts\Queue\ShouldQueue;
use LM2\Models\Lead;
use LM2\Models\User;
class SetReminder extends Job implements SelfHandling, ShouldQueue
{
use InteractsWithQueue, SerializesModels;
public $user;
public $lead;
public function __construct(User $user, Lead $lead)
{
$this->user = $user;
$this->lead = $lead;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$user = new User(['client_id' => 1, 'name'=>'asdasd', 'password' => '123' , 'email' => microtime().'@gmail.com']);
$user->save();
}
}
和控制器函数调用这项工作是:
public function setReminder($lead_id, Request $request)
{
$due_time = $request->input('due_time');
$message = $request->input('message');
$user = \Auth::user();
$lead = Lead::where('_id',$lead_id)->first();
$lead->reminders = ['message' => $message , 'due_time' => $due_time, 'user_id' => $user->id, 'active' => 1];
$lead->save();
$job = (new SetReminder(
\Auth::user(),
Lead::find($lead_id)
))->delay(10);
$this->dispatch($job);
return $lead;
}
调用函数之前我在终端运行php artisan queue:listen
。 非常感谢大家:) :)
p.s新用户插入句柄函数只是为了测试它。
有人有想法吗? :/ – benjah
对我而言,延迟不是一种方法。 – rajangupta