gpt4 book ai didi

php - 在 Laravel 5 中设置队列

转载 作者:可可西里 更新时间:2023-11-01 12:32:38 24 4
gpt4 key购买 nike

我正在尝试在返回 HTTP 响应后运行代码。我知道 Laravel 5 支持 queues ,但我仍然觉得它们令人困惑。我正在尝试在用户注册后运行代码,这需要用户的密码和用户名。 This answer看起来很有趣,但并不直接适用于 Laravel。

  • 如何在队列中创建作业?
  • 如何将数据传递给新作业?

我知道这听起来很懒惰,但我真的不明白文档。

最佳答案

作为第一步,设置队列需要选择您将使用的驱动程序。因为它是最快运行的,所以我将解释如何从 database 驱动程序开始,因为它不需要在服务器上安装任何其他服务(beanstalkd 就是这种情况)例子)。设置方法如下:

1. 在您的 .env 文件中设置 QUEUE_DRIVER:

QUEUE_DRIVER=database

2. 运行此命令为 jobs 表生成迁移文件,该表将用于存储作业信息:

php artisan queue:table

3.现在运行迁移以创建表:

php artisan migrate

创建了一个 jobs 表,用于在将作业推送到队列时存储数据。


您可以将命令和 clojure 推送到队列中。为了简洁起见,我将展示一个如何将闭包推送到队列的示例:

$username = Request::input('username');
$password = Request::input('password');

// Do your registration stuff

// Push a job onto the queue
\Queue::push(function($job) use ($username, $password)
{
// Do the stuff you need here with $username and $password

// Delete the job from the queue
$job->delete();
});

完成这项工作的最后一步是运行队列监听器。除非队列监听器正在运行,否则不会自动处理作业。所以运行这个命令:

php artisan queue:listen

您可以采取进一步的步骤,例如设置 Supervisor 以监视并在队列监听器崩溃时重新启动它,但这应该足以让您入门。

关于php - 在 Laravel 5 中设置队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30466161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com