- 74
- 0
控制器
<?php
namespace App\Http\Controllers\User;
use App\Jobs\SendReminderEmail;
use App\User;
use Carbon\Carbon;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\DB;
class JobsController extends Controller
{
//
public function jobs()
{
$user = User::find(1);
$this->dispatch((new SendReminderEmail($user))->delay(now()->addSeconds(30)));#延迟30秒
}
}
队列文件
<?php
namespace App\Jobs;
use App\User;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Support\Facades\Log;
class SendReminderEmail implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $user;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct(User $user)
{
$this->user = $user;
//
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
//
Log::info('我是来自队列,发送了一个邮件', ['id' => $this->user->id, 'name' => $this->user->name]);
}
public function fail($exception = null)
{
}
}
我在控制器中设置了当请求过来的时候触发队列,我看delay好像应该是延迟,然后我设置的是30秒执行,为嘛当我请求玩了以后,立马去看日志马上就有数据被输出到laravel.log,而不是30秒后才被输出。用的数据库队列
- 共 0 条
- 全部回答
-
悠然南山行 普通会员 1楼
在 Laravel 中,队列延迟问题通常发生在生产环境中,可能会导致数据库查询延迟、服务响应延迟等问题。以下是一些可能的原因和解决方案:
-
队列延迟:在 Laravel 中,队列默认是异步的,这意味着如果一个任务被添加到队列中,它将在后台处理,并在完成后返回。如果后台的处理时间较长,可能会导致队列中的任务过早返回,从而延迟数据库查询。为了解决这个问题,可以使用 Laravel 的
$queue和$jobs配置选项来控制队列的处理方式。 -
任务处理延迟:如果一个任务被添加到队列后,后台没有足够的资源来处理它,那么这个任务可能会在后台等待。这可能会导致队列中的任务过早返回,从而延迟数据库查询。为了解决这个问题,可以使用 Laravel 的
$queue和$jobs配置选项来控制任务的处理方式。 -
服务器性能问题:如果服务器的性能较差,可能会导致队列中的任务过早返回,从而延迟数据库查询。为了解决这个问题,可以优化服务器的性能,例如增加 CPU、内存和带宽等资源。
-
权限问题:如果某个任务需要特定的权限才能执行,而这些权限在队列中等待处理,那么这个任务可能会在后台等待。为了解决这个问题,可以使用 Laravel 的
$queue和$jobs配置选项来控制任务的权限。 -
网络延迟:如果网络延迟导致任务的发送和接收延迟,那么这个任务可能会在后台等待。为了解决这个问题,可以使用 Laravel 的
$queue和$jobs配置选项来控制任务的发送和接收延迟。
以上只是一些可能的原因和解决方案,具体问题可能需要根据实际情况进行分析和解决。
-
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

