首页 > 其他分享 >拉取任务

拉取任务

时间:2023-07-05 09:45:28浏览次数:27  
标签:task json 拉取 priority 任务 Task type

实现思路:

  消费任务————————》从redis中的list中pop数据——————》修改数据库的任务

 参数:任务的类型和优先级    pop:取出数据并删除       删除任务&修改任务日志

 /**
     * 按照任务类型和优先级拉取任务
     * @param type
     * @param priority
     * @return
     */
    @Override
    public Task poll(int type, int priority) {
        Task task = null;
        try{
            String key = type + "_" + priority;
            //1、从redis中拉取数据
            String task_json = cacheService.lRightPop(ScheduleConstants.TOPIC + key);
            if(StringUtils.isNotBlank(task_json)){
                task = JSON.parseObject(task_json, Task.class);

                //2、修改数据库信息:删除任务更新日志
                updateDb(task.getTaskId(), ScheduleConstants.EXECUTED);
            }
        }catch (Exception e){
            e.printStackTrace();
            log.error("poll exception");
        }

        return task;
    }

 

标签:task,json,拉取,priority,任务,Task,type
From: https://www.cnblogs.com/fxzm/p/17527693.html

相关文章

  • 取消任务
    场景:第三接口网络不通,使用延迟任务进行重试,当达到阈值以后,取消任务。taskId——》删除任务——》更新日志状态——》删除redis中的数据1、根据taskid删除任务,修改任务日志状态为2(取消)2、删除redis中对应的任务数据,包括list和zset/***取消任务*@paramt......
  • 6.29 celery分布式异步任务框架
    1.celery:分步式异步任务框架 /1 异步任务/2 延迟任务/3 定时任务/4 celery架构消息中间件(broker):消息队列:可以使用redis,rabbitmq任务执行单元(worker):执行单元执行提交的任务任务执行结果存储(banckend):可以使用mysql,redis/5安装celery模块:cmd中......
  • webapi中用Quartz(定时任务)的步骤
         文件---新建---项目---ASP.NETWEB应用程序---程序命名---webapiNuget---Quartz(/v2.5)创建要在定时任务中执行的工作内容publicclassRJJob:Ijob创建调度任务(确定执行时间)Global.asax中,加入启动代码:JobScheduler.Start();......
  • redis实现延迟任务
    实现思路:发布时间:立即发布、未来要发布list存立即发布,redis中的list是双向链表,方便添加查找性能较高。zset可以去重、排序,存储未来要发布的。 为什么要把任务存储到数据库中?延迟任务是一个通用的服务,任何有延迟需求的任务都可以调用该服务,内存数据库的存储是有限的,需要考虑......
  • 大连人工智能计算平台——华为昇腾AI平台——高性能计算HPC的单任务task的多CPU运行模
    超算是离我们平时生活比较远的一个事情,即使是对于一个计算机专业方向的学生来说,正好实验室得到了华为的超算平台的使用账号,于是就摸索了一下,不得不承认这个东西确实不是普通人能搞的明白的。 基本概念:一个工作Job可以开多个副本,每个副本都是mpirun-N所开出的,每个副本又被叫......
  • 【HZERO】定时任务
    ......
  • 多任务异步协程实现
    1.未实现异步操作代码: 2.实现异步操作代码: ......
  • 【JS错误总结】promise.then 如果没有被 resolve,不会立即执行,而是先执行宏任务,等待 pr
    setTimeout(()=>{console.log('setTimeout')},0)letpromise=newPromise((resolve,reject)=>{console.log('1')setTimeout(()=>{console.log('timeStart')resolve('success�......
  • 解决方案 | win10任务栏假死,桌面鼠标可以动但是无法点击任务栏图标
    1背景今天电脑不知道什么原因,鼠标出现了无法点击任务栏图标的情况,但是桌面上可以晃动。 2解决过程(方法1-3对我无效,但是不代表对你们无效,)方法1:重启资源管理器。方法2:电脑重启、或者关机重启。方法3:win+i,设置-电源和睡眠--从不 除此之外,我还进行了系统还原、文件转移(......
  • 15-7 任务计划管理
    一、修改httpd服务配置文件  信号发送[root@centos8~]#vim/etc/httpd/conf/httpd.conf[root@centos8~]#systemctlstarthttpd重启服务[root@centos8~]#ss-ntl监听端口[root@centos8~]#kill-1进程号(重新读取配置文件)二、脚本重启不正常服务[root@centos8~]......