Git Product home page Git Product logo

Comments (8)

guzhou218 avatar guzhou218 commented on June 6, 2024

https://gitee.com/KFCFans/PowerJob/issues/I7LH7D 楼主看看我在gitee上的这个问题是不是就是这个造成的,我确实遇到了任务重复执行

from powerjob.

KFCFans avatar KFCFans commented on June 6, 2024

这就是选择问题了。
PowerJob 选择宁可多调度,也不少调度,所以先确保时间轮提交才写DB。
先写DB,写完DB后执行被中断,就会导致这次任务被跳过,问题更大。

from powerjob.

KFCFans avatar KFCFans commented on June 6, 2024

正常情况 DB 的成功率几乎等于 100%,如果能比较稳定复现大概率不是这个原因,可以看看是不是触发了什么失败重试机制。

from powerjob.

KFCFans avatar KFCFans commented on June 6, 2024

欢迎再深入研究一下

from powerjob.

ido2021 avatar ido2021 commented on June 6, 2024

这就是选择问题了。 PowerJob 选择宁可多调度,也不少调度,所以先确保时间轮提交才写DB。 先写DB,写完DB后执行被中断,就会导致这次任务被跳过,问题更大。

写完DB,后续就是将派发操作推入时间轮了,只是推入时间轮的操作好像没什么会导致中断吧?

from powerjob.

guzhou218 avatar guzhou218 commented on June 6, 2024

正常情况 DB 的成功率几乎等于 100%,如果能比较稳定复现大概率不是这个原因,可以看看是不是触发了什么失败重试机制。

这个在实际应用过程中表现出来的并不是触发失败重试的机制,这是首次接入powerjob,在本次项目的应用过程中多个场景之下都发现了同一个任务实例被多次调起的问题,准确的来说并不是同一个实例,因为在powerjob的任务实例表里生成了两条除实例id不同外其余数据全部相同的数据,也就是一次任务的派发生成了两条实例数据。比如在gitee提交的https://gitee.com/KFCFans/PowerJob/issues/I7LH7D 这个里面是将客户原有的老系统附加信息迁移到新系统的中,采用的方式先新建一个任务每分钟执行一次,从数据库中取出老系统的附加信息,每次取10条这个样子,取到的附件信息迁移到新系统中每次要将附件先上传到minio然后再处理新系统的附件表,所有是任务套任务的方式,每次取出的10条附件信息又for循环run了一个被禁用的任务,也就是取出10条数据后,再将这10条数据通过动态传参run了另一个任务10次。又比如在另一个场景之下,客户需求上需要批量开房的这种场景,因为开房的这个场景除了自己系统当中业务数据处理,还需要连通第三方厂商提供的服务,单个的开房场景是处理自己业务数据后还需要连通第三方酒店系统、智能门锁系统、短信服务,而客户提出批量需求,所以我们采用的方式是建一个禁用的任务,用户发起批量处理的时候,我们处理完自己的业务数据后,把联动第三方酒店系统生成订单、智能门锁生成房间门锁密码、把密码通过短信服务发送到住户手机上的操作交给这个被禁用的任务去处理,通过run多次这个被禁用的任务动态传参去一个个处理,也会发现run一次但是生成多个任务实例id不同其余全部相同的任务实例数据。综合多个场景下的使用情况,就是当一个任务在短时间内被多次run的时候,那么每次run都有可能产生多个任务实例,重复几率大概有七八成。

from powerjob.

ido2021 avatar ido2021 commented on June 6, 2024

https://gitee.com/KFCFans/PowerJob/issues/I7LH7D 楼主看看我在gitee上的这个问题是不是就是这个造成的,我确实遇到了任务重复执行

看了你的问题,和我说的不是一个问题。我这边描述的是定时调度的场景,而你的问题是通过api主动调起的。
看你的问题,定时调度job-118只生成了1个实例,是正常的,但是通过api调起的119却生成了2个实例。这要结合你119的任务信息去排查了

from powerjob.

guzhou218 avatar guzhou218 commented on June 6, 2024

https://gitee.com/KFCFans/PowerJob/issues/I7LH7D 楼主看看我在gitee上的这个问题是不是就是这个造成的,我确实遇到了任务重复执行

看了你的问题,和我说的不是一个问题。我这边描述的是定时调度的场景,而你的问题是通过api主动调起的。 看你的问题,定时调度job-118只生成了1个实例,是正常的,但是通过api调起的119却生成了2个实例。这要结合你119的任务信息去排查了

119的这个任务通过api去调起run10次,基本上会生成十七八条任务实例数据,就是其中有七八次run重复生成了任务实例,一开始我觉得可能是集群部署的问题,看了任务实例数据,重复的任务实例其实也是被同一台执行机器执行的

from powerjob.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.