Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Laravel -调度作业时出现Redis错误

Laravel -调度作业时出现Redis错误
EN

Stack Overflow用户
提问于 2021-07-30 05:33:03
回答 2查看 397关注 0票数 1

在我负责的一个系统上,有时由于Redis的连接问题,一些作业没有被调度,这最终会向用户返回一个错误,在我们这边,我们可以忽略这个错误,只是错过了这个作业,我在Google上寻找如何处理它,但我没有找到任何关于它的东西。

代码语言:javascript
运行
AI代码解释
复制
public function sendMessage(Request $request, Model $model)
{
    // Do the necessary stuff
    
    ResolveMessageBilling::dispatch($model, $request->all());

    return response()->json([
        'message' => 'The message was succesfully sent'
    ], 200);
}

这就是我们得到的错误:RedisException - socket error on read socket

如果发生错误,如何忽略它?一个简单的try/catch就能解决这个问题吗?

代码语言:javascript
运行
AI代码解释
复制
public function sendMessage(Request $request, Model $model)
{
    // Do the necessary stuff

    try {
        ResolveMessageBilling::dispatch($model, $request->all());
    } catch(\Exception $e) {}

    return response()->json([
        'message' => 'The message was succesfully sent'
    ], 200);
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-08-12 06:41:35

如果要绕过任何错误,则应使用\Throwable而不是\Exception

代码语言:javascript
运行
AI代码解释
复制
public function sendMessage(Request $request, Model $model)
{
    // Do the necessary stuff

    try {
        ResolveMessageBilling::dispatch($model, $request->all());
    } catch(\Throwable $e) {}

    return response()->json([
        'message' => 'The message was succesfully sent'
    ], 200);
}

请参见错误层次结构:https://www.php.net/manual/en/language.errors.php7.php

如果您只想绕过\RedisException,您应该能够使用:

代码语言:javascript
运行
AI代码解释
复制
public function sendMessage(Request $request, Model $model)
{
    // Do the necessary stuff

    try {
        ResolveMessageBilling::dispatch($model, $request->all());
    } catch(\RedisException $e) {}

    return response()->json([
        'message' => 'The message was succesfully sent'
    ], 200);
}
票数 1
EN

Stack Overflow用户

发布于 2021-08-15 20:17:00

如果您不想设置Redis,只想修复/删除错误,请遵循本文:https://laravel.com/docs/7.x/errors

如果您想正确设置Redis(配置-> detabase.php),请执行以下几个步骤:

代码语言:javascript
运行
AI代码解释
复制
'redis' => [

    'client' => 'predis',

    // Keep Default as is you want to use both redis and sentinel for different service(cache, queue)'
    'default' => [
        'host' => env('REDIS_HOST', '127.0.0.1'),
        'password' => env('REDIS_PASSWORD', null),
        'port' => env('REDIS_PORT', 6379),
        'database' => 0,
    ],

    // Create a custom connection to use redis sentinel
    'cache_sentinel' => [
        // Set the Sentinel Host from Environment (optinal you can hardcode if want to use in prod only)
        env('CACHE_REDIS_SENTINEL_1'),
        env('CACHE_REDIS_SENTINEL_2'),
        env('CACHE_REDIS_SENTINEL_3'),
        'options' => [
            'replication' => 'sentinel',
            'service' => 'cachemaster'),
            'parameters' => [
                'password' => env('REDIS_PASSWORD', null),
                'database' => 0,
            ],
        ],
    ],
],

如果您需要Redis sentinal缓存,可以创建新的缓存连接来使用上述sentinal连接,如下所示:

‘'stores’=[

代码语言:javascript
运行
AI代码解释
复制
//Default config
'redis' => [
    'driver'     => 'redis',
    'connection' => 'default',
],

// Custom cache connection(according to you)
'sentinel_redis' => [
    'driver'     => 'redis',
    'connection' => 'cache_sentinel',
],

在laravel应用程序中,您可以通过缓存外观轻松使用:

代码语言:javascript
运行
AI代码解释
复制
Cache::store('sentinel_redis')->get('key');

在正确配置Redis之后,再次使用清除服务器缓存进行测试

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68591838

复制
相关文章
laravel多表登录出现路由调用错误
文件存在于: D:\phpstudy\PHPTutorial\WWW\laravel\blog\vendor\laravel\framework\src\Illuminate\Routing\Router.php
全栈程序员站长
2022/07/07
6210
Spark作业调度
    Spark在任务提交时,主要存在于Driver和Executor的两个节点.
用户3003813
2018/09/06
7510
MapReduce作业调度
可以通过设置mapred.job.priority属性或JobClient的setJobPriority()方法来设置优先级(在这两种方法中,可以选VERY_HIGH,HIGH,NORMAL,LOW,VERY_LOW中的任何值作为优先级)。在作业调度器选择要运行的下一个作业时,选择的是优先级最高的作业。然而,在FIFO调度算法中,优先级并不支持抢占,所以高优先级的作业任然受阻于此前已经开始的,长时间运行的低优先级的作业。MR1的默认调度器是最初基于队列的FIFO调度器,还有两个多用户调度器,分别为公平调度器和容量调度器。
加米谷大数据
2018/03/15
7060
MapReduce作业调度
作业调度算法
  在多道程序环境中,主存中有着多个进程,其数目往往多于处理机数量。这就要求系统能按照某种算法动态地把处理机分配给就绪队列中的一个进程,使之执行,分配处理机的任务是由处理机调度程序完成的。 处理机调度   在多道程序系统中,一个作业被提交后必须经过处理机调度后,方能获得处理机执行。对于批量型作业而言,通常需要经历作业调度(也称为高级调度)和进程调度(也称为低级调度)两个过程才能获得处理机;而对于终端型作业而言,通常只需要经过进程调度就可以获得处理机。除了上述两种调度,操作系统中往往也设置了中级调度,用来提
Mister24
2018/05/14
4K0
Spark作业调度
  Spark在standalone模式下,默认是使用FIFO的模式,我们可以使用spark.cores.max 来设置它的最大核心数,使用spark.executor.memory 来设置它的内存。      在YARN模式下,使用--num-workers设置worker的数量,使用--worker-memory设置work的内存,使用--worker-cores设置worker的核心数。      下面介绍一下怎么设置Spark的调度为Fair模式。   在实例化SparkContext之前,设置sp
岑玉海
2018/02/28
9830
Typecho评论时可能出现的错误
根据URL得知应该是在发评论的时候出现的错误。很奇怪,因为很久之前这位博友jiuki's blog也给我反馈过一次。说明这问题不是偶然出现的,所以必须要解决才行。
Melody132
2020/03/13
1.7K0
关于laravel-admin安装时的错误
然后吧,我就慌了,我个萌新也不知道肿么办啊,好在官方的issue给出了解决办法,大概就是这样式的。 在app\Providers\AppServiceProvider.php添加默认值 修改前:
用砖头敲代码
2022/08/30
9640
流水作业调度
流水作业调度问题 描述: N个作业{1,2,………,n}要在由两台机器M1和M2组成的流水线上完成加工。每个作业加工的顺序都是先在M1上加工,然后在M2上加工。 M1和M2加工作业i所需的时间分别为ai和bi,1≤i≤n。流水作业高度问题要求确定这n个作业的最优加工顺序,使得从第一个作业在 机器M1上开始加工,到最后一个作业在机器M2上加工完成所需的时间最少。 可以假定任何任务一旦开始加工,就不允许被中断,直到该任务被完成,即非优先调度。 输入: 输入包含若干个用例,第一行为一个正整数K(1<=K<=100
用户1154259
2018/01/17
1.1K0
流水作业调度
Laravel 任务调度
过去想给一个脚本创建计划任务,得登陆服务器执行crontab -e,或编辑/etc/crontab,每加一个脚本都得重复此步骤。
崔哥
2023/02/27
1.1K0
Quartz作业调度框架
Quartz 是一个开源的作业调度框架,它完全由 Java 写成,并设计用于 J2SE 和 J2EE 应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。本系统结合通过 Spring 来集成 Quartz 。 Quartz 下载地址 : http://grepcode.com/snapshot/repo1.maven.org/maven2/org.quartz-scheduler/quartz/1.7.3 首先下载包 :quartz-1.7.
java达人
2018/01/31
9320
navicat连接mysql时出现2003(10060)错误
参考http://jingyan.baidu.com/article/95c9d20dac9040ec4f75617a.html,发现是防火墙未关闭;
全栈程序员站长
2021/06/21
8.3K1
navicat连接mysql时出现2003(10060)错误
Eclipse保存文件时出现字符编码错误
eclipse 由于开源所以支持了比较杂的编码方式,而这些一个工程导入时添加了不少的外来程序,由于不是同一工程一次编码带来了其中含有 GBK 或 UTF8 或 UTF16 或 ASCII 等文件编译时就会出现错误警告。
黑泽君
2018/10/11
3.6K0
laravel php artisan migrate 数据迁移时出现的[HY000][1045]错误
(zz找了块一个小时才发现)主要的错误在于.env文件和database.php的配置不匹配。
全栈程序员站长
2022/07/07
9540
laravel php artisan migrate 数据迁移时出现的[HY000][1045]错误
作业调度框架Quartz
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
奋飛
2019/08/15
7510
Laravel-任务调度
简介 Cron 是 UNIX、SOLARIS、LINUX 下的一个十分有用的工具,通过 Cron 脚本能使计划任务定期地在系统后台自动运行。这种计划任务在 UNIX、SOLARIS、LINUX下术语为 Cron Jobs。Crontab 则是用来记录在特定时间运行的 Cron 的一个脚本文件,Crontab 文件的每一行均遵守特定的格式:
全栈程序员站长
2022/07/08
1.9K0
Laravel-任务调度
闲鱼Coder学作业调度:作业分片
  前段时间学习分布式作业调度中间件常看到这样一个概念:「作业分片」 。最初看到这个概念时,脑海中立刻浮现出这样一些问题:什么是作业分片?作业分片分片的对象是什么?为什么要进行分片呢?如何进行作业分片呢?不要问我问题为什么这么多,问了就是因为菜。
闲宇非鱼
2022/02/08
4830
访问网时出现403 Forbidden错误的原因:
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/113700.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/07
10.4K1
IDEA远程提交hadoop任务时出现的错误
上述问题解决:开启historyserver服务 mr-jobhistory-daemon.sh start historyserver
ZONGLYN
2019/08/08
2.4K0
轻松使用crontab调度作业
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzy0623/article/details/53905500
用户1148526
2019/05/25
7430
点击加载更多

相似问题

当作业调度时,Laravel队列出现卷曲错误

10

Laravel - phow如何在作业调度后获取redis作业ID?

06

如何在带有Redis的Laravel 5.8中调度异步作业?

146

Laravel 5.3调度作业有奇怪的错误

12

基于Redis的Java作业调度器

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档