精华内容
下载资源
问答
  • 107.1 laravel使用队列的时候会遇到的问题 一些启动命令
    2021-07-27 19:35:30

    laravel队列问题

    ps -fe | grep ‘artisan queue’ |grep -v ‘grep’ | wc -l

    ps -fe | grep ‘artisan queue’ |grep -v ‘grep’

    grep -v grep 代表在查询的最终结果中去掉grep命令本身
    wc -l 标示统计查询到的结果数量

    在使用队列的时候,
    使用

    $this->release(15)
    

    指的是
    *将任务释放回队列。
    *接受以秒为单位指定的延迟。

    上面的代码就是延迟了15秒。

    参考资料:
    队列的laravel 文档

    更多相关内容
  • laravel重启单个队列As you are aware that stack follows LIFO principle i.e first in first out and queue follows FIFO principle i.e last in first out, below is the simple java code which better ...

    laravel重启单个队列

    As you are aware that stack follows LIFO principle i.e first in first out and queue follows FIFO principle i.e last in first out, below is the simple java code which better illustrates the difference between the two.

    如您所知,堆栈遵循LIFO原则,即先进先出,队列遵循FIFO原则,即后进先出,下面是简单的Java代码,可以更好地说明两者之间的区别。

    import java.util.LinkedList;
    import java.util.Queue;
    import java.util.Scanner;
    import java.util.Stack;
    
    public class stackqueue {
    	public static void main(String[] args) {
    		int k=1;
    		Stack<Integer> stack=new Stack<Integer>();
    		Queue<Integer> queue=  new LinkedList<Integer>();
    		Scanner sc =new Scanner(System.in);
    		do
    		{
    			int j=0,i,ent;
    			System.out.println("Enter 1 for stack selection and 2 for queue selection");
    			j=sc.nextInt();
    			if(j==1)
    			{
    				System.out.println("Enter 1 for push and 2 for pop");
    				i=sc.nextInt();
    				if(i==1)
    				{
    					System.out.println("Enter the element");
    					ent =sc.nextInt();
    					stack.push(ent);
    					System.out.println(stack);
    				}
    				else
    				{ 
    					stack.pop();
    					System.out.println(stack);
    				}
    			}
    			else
    			{
    				System.out.println("Enter 1 for push and 2 for pop");
    				i=sc.nextInt();
    				if(i==1)
    				{
    					System.out.println("Enter the element");
    					ent =sc.nextInt();
    					queue.add(ent);
    					System.out.println(queue);
    				}
    				else
    				{
    					queue.remove();
    					System.out.println(queue);
    				}
    			}
    			System.out.println("press 1 to continue and 0 to exit");
    			k=sc.nextInt();
    		}while(k==1);
    	}
    }
    
    

    Output

    输出量

    java program output 112

    翻译自: https://www.includehelp.com/java-programs/using-queue-and-stack-in-a-single-java-program-using-loops.aspx

    laravel重启单个队列

    展开全文
  • laravel 队列重启

    千次阅读 2018-08-16 16:42:00
    我在job中写了邮件发送 ,线下环境测试是无问题的 ,现在放到线上出现了...队列重启,就好了 php artisan queue:restart   https://laravel-china.org/topics/3351/laravel-queue-send-mail-problems

    我在job中写了邮件发送 ,线下环境测试是无问题的 ,现在放到线上出现了问题。
    问题描述:
    部分时候邮件功能可用,部分时间邮件功能不可用。
    邮件功能不可用的时候,job发送失败,失败原因是无发送人,打印log发现获取不到config/mail.php的正确配置,所获取的配置都是系统的默认配置。

    请问有人是否遇到了类似问题,或者我的哪里配置有错误的,还是谁能帮忙解释下job的加载机制,谢谢。

    本文章首发在 Laravel China 社区

     

    队列重启,就好了

    php artisan queue:restart

     

    https://laravel-china.org/topics/3351/laravel-queue-send-mail-problems

    展开全文
  • Laravel框架之队列

    2021-09-11 17:05:46
    队列可用来执行发送邮件、短信、推送等,还可用来做高并发时将库存放入队列中,来防止超卖...注意:队列文件更改后要重启队列才能生效 队列重启: php artisan queue:restart 监听队列(只有监听状态队列才能正常运行

    队列可用来执行发送邮件、短信、推送等,还可用来做高并发时将库存放入队列中,来防止超卖的情况,还可用来创建订单时将订单加入延时队列中用来自动更改订单为过期状态。
    使用队列可以异步执行消耗时间的任务,降低请求的响应时间

    队列文件的位置:

    app/Jobs

    创建队列(如创建一个发送邮件的队列文件):

    php artisan make:job SendEmail

    注意:队列文件更改后要重启队列才能生效
    队列重启:

    php artisan queue:restart

    监听队列(只有监听状态队列才能正常运行):

    php artisan queue:listen //监听队列请求,只要运行着,就能一直接受请求,除非手动终止
    php artisan queue:work //默认只执行一次队列请求,当请求执行完成后就终止
    php artisan queue:work --daemon //同 listen 一样,只要运行着,就能一直接受请求,不一样的地方是在这个运行模式下,当新的请求到来的时候,不重新加载整个框架 , 而是直接 fire 动作.能看出来,queue:work --daemon 是最高级的,一般推荐使用这个来处理队列监听

    队列监听守护进程请参考:链接

    使用队列:
    控制器直接使用:

    $data['id'] = $id;
    $job = new SendEmail($data);
    $job->dispatch($data);
    

    为了使队列的使用逻辑更加清晰及方便项目复用,可在 app/Http/Controllers 目录创建 Jobs 文件夹用来起到过度作用,再创建 SendEmailController.php 文件,文件内容如下:

    <?php
    namespace App\Http\Controllers\Jobs;
    
    use App\Http\Controllers\BaseController;
    use App\Jobs\SendEmail;
    
    class SendEmailController extends BaseController
    {
    	//可以给队列起个名字
    	public $name = 'send_email';
    	//加入队列
        public static function runJob($data)
        {
            $job = new SendEmail((new self())->name,$data);
            (new self())->dispatch($job);
        }
    }
    

    然后在控制器中使用:

    $job = new SendEmailController();
    $job::runJob($data);
    

    注:若提示自定义类无法找到,可能是不符合 psr-4自动加载规范, 需在 composer.json 文件中找到 autoload,加入我们自定义的Jobs目录:

     "autoload": {
            "psr-4": {
                "App\\": "app/",
                "Jobs\\": "app/Http/Jobs"
            },
            "classmap": [
                "database/seeds",
                "database/factories",
                "app/Http/Jobs"
            ]
        },
    

    在队列文件 app/Jobs/SendEmail.php 中:

    <?php
    namespace App\Jobs;
    
    use App\Models\User;
    use Illuminate\Bus\Queueable;
    use Illuminate\Contracts\Queue\ShouldQueue;
    use Illuminate\Foundation\Bus\Dispatchable;
    use Illuminate\Queue\InteractsWithQueue;
    use Illuminate\Queue\SerializesModels;
    
    class SendEmail implements ShouldQueue
    {
        use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
    
    	protected $name;
        protected $data;
        
        public function __construct($name,$data)
        {
          	$this->name= $name;
            $this->data= $data;
        }
    
        /**
         * 队列执行的具体内容
         */
        public function handle()
        {
            ##执行发送邮件的逻辑
        }
    }
    
    
    展开全文
  • 背景:队列文件中有一个地方需要修改,修改后一直不生效 解决:由于使用supervisor ...需要做的就是重启supervisor,重启后 kill -9 php进程,强制重启php的队列 才会生效 一句话,需要重启php队列进程才能生效 ...
  • Laravel队列

    2020-12-19 12:46:24
    一.配置队列配置文件存放在config/queue.php 。...其中还包含了一个 null 队列驱动以拒绝队列任务。默认是sync,即同步的,直接处理,无队列.要将其修改为对应的类型,如database等二.依赖1.数据库依赖为了使...
  • 这篇文章主要介绍的内容是关于Laravel队列系统介绍,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下Laravel 队列为不同的后台队列服务提供统一的 API , 例如 Beanstalk,Amazon SQS, Redis,...
  • laravel中,队列的实现我们只需要通过简单的配置,就能实现。 通过执行php artisan make:job 任务类名称我们可以实现一个队列任务,执行该命令后,将会在app目录下生成Jobs目录并创建一个新的任务类,该任务类会...
  • 队列Laravel5 使用队列可以异步执行消耗时间的任务,降低请求的响应时间安装队列驱动根据你自己的需求安装对应的队列驱动composer require "predis/predis:~1.1"关于配置队列队列配置信息文件 config/queue.php其中...
  • laravel queue 队列使用

    2021-09-03 09:17:07
    Laravel 队列提供了可以跨各种不同队列后台的统一 API,例如 Beanstalk、Amazon SQS、Redis 甚至关系数据库。通过队列,可以将耗时任务 (如发送电子邮件) 的处理往后推延。延迟这些耗时的任务可以极大地提升 web ...
  • textlaravel.cc\laravel5\config\queue.php 修改为Redis队列方式 'default' => env('QUEUE_CONNECTION', 'redis'), 在没有开启队列监听,或者处理第一个队列任务命令,那么队列任务是不会执行的。 // 开启队列...
  • Laravel异步队列全攻略

    2020-12-19 12:46:28
    最近项目需求,研究了laravel的异步队列。官方文档虽然很是详细,但也有些晦涩难懂,在此记录下步骤,供大家参考。1、修改/config/queue.php文件| Default Queue Connection Name|---------------------------------...
  • 安装 Supervisor Supervisor 是一个用于 Linux 操作系统的进程监视器,如果 queue:work 进程失败,它将自动重启该进程。...然后这个进程就是处于保护状态了 知识点: 重启启动所有队列 sudo supervisorctl restart all
  • laravel队列浅析

    2020-12-29 03:19:28
    laravel Queue原理:类似写一个死循环的脚本在Linux系统持续运行,新的队列任务push到这个脚本中。场景:一种是高并发的情况,一种是耗时的操作,可以将任务放到队列中去,消费者从队列取任务执行,当然还有失败的...
  • 项目的队列使用database 作为队列驱动,在任务入队之后发现并未生效。所以对问题进行排查。 首先查看 failed_jobs 表,发现并没有失败的任务生成记录,然后查看jobs 表,发现确实已经入了 jobs 表的记录。 查看...
  • Laravel 队列系统实现及使用教程

    千次阅读 2021-01-15 02:07:05
    Laravel 队列系统实现及使用教程由 学院君 创建于2年前, 最后更新于 9个月前版本号 #248088 views10 likes0 collects简介注:Laravel 现在提供了基于 Redis 的,拥有美观的后台和配置系统的 Horizon 队列扩展包,...
  • 要使用 database队列驱动,你需要数据表保存任务信息。 要生成创建这些表的迁移,运行 Artisan 命令 queue:table, 迁移被创建之后,可以使用 migrate命令生成这些表: 执行完,修改和生成的文件 ...
  • 1.想使用Redis作为队列的驱动,先通过宝塔安装redis2.安装好redis,需要配置3.点开宝塔中的redis设置,目前config/database.php不需要改动4.把队列连接设置为redis,修改.env文件QUEUE_CONNECTION=redis5.创建队列...
  • 1.使用redis作为队列,修改config的queue配置,修改.nev QUEUE_CONNECTION = redis 2.创建执行队列的工作类,php artisan make:job TestJob, 这个时候会在 项目目录/app/Jobs目录中发现job文件 3.然后我们在这个job...
  • 1. 队列任务自启动接下来我们还需要在服务器上配置 Supervisor 来启动 Horizon。Supervisor 是一款进程管理工具,通过配置可以实现自动监听进程状态,如果被监听的进程发生异常退出,Supervisor 会尝试再次启动该...
  • laravel 队列任务不生效

    千次阅读 2020-10-16 15:14:18
    任务队列修改或新增不生效 进行重新加载 php artisan queue:restart 开始运行消费队列 php artisan queue:work redis --queue=队列
  • 框架:laravel 5.5 公众号:我的是服务号(需要营业执照申请,300一年) PHP版本:7.1 需要自己配置好php环境,安装好redis 直接进入代码主题 php artisan make:controller Weixin\IndexController 创建好控制...
  • 队列简介laravel队列服务对各种不同的后台队列服务提供了统一的 API。队列允许你延迟执行消耗时间的任务,比如发送一封邮件。这样可以有效的降低请求响应的时间。配置队列的配置文件被存储在 config/queue.php 中...
  • laravel 消息队列中有两种推送方法 分别是dispatch() 及 queue::push() 这两种都可以将方法push进队列 但是两者不同的是 当$job 中定义了public $queue 的值时,dispatch会将数据存到$job中定义的文件夹中,而 ...
  • laravel 队列延迟

    千次阅读 2019-12-25 23:14:20
    接到需求需要写一个延时队列。调查了一下laravel的延时队列,非常简单。 第一种在Job类里直接添加 public 参数。...在这个页面修改任何数据都必须重启队列。 另一种是在new job的时候直接修改 $job = ...
  • 即上一次写了一个简单的队列的逻辑,要把它放到实际应用的框架里,才是真靠谱的,今儿就用laravel5.5框架,学习了一下如何把队列的逻辑放到框架里实际应用起来 1、进入laravel框架根目录,执行命令:...
  • laravel 使用队列

    2018-11-02 17:45:42
    项目从 laravel 5.2 迁移到 5.7,发现之前的 Mail 有点问题,今天重构了下,用到几个地方: 参考文档: https://laravelacademy.org/post/9569.html 用到的几个技术点: app/Mail/Offer.php - 可邮件类 ...
  • Laravel 5.5 队列

    2019-02-08 16:35:44
    Laravel 队列为不同的后台队列服务提供了统一的 API,例如 Beanstalk,Amazon SQS,Redis,甚至其他基于关系型数据库的队列队列的目的是将耗时的任务延时处理,比如发送邮件,从而大幅度缩短 Web 请求和响应的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 702
精华内容 280
关键字:

laravel 重启队列