草庐IT

python - 从失败的 rq 作业中获取异常消息

我正在使用rq和q.enqueue_call(...)运行一个作业,在这个作业中我用raiseException('URLnotfound')引发异常我想知道在作业失败后如何从该作业中获取异常消息(“找不到URL”)。我可以获取堆栈跟踪print(get_failed_queue(connection=conn).jobs[-1].exc_info)虽然自己似乎无法获取简短的错误消息。我认为job.result(在使用job=Job.fetch(job_key,connection=conn)获得工作后)会起作用,尽管它返回None 最佳答案

python - 从失败的 rq 作业中获取异常消息

我正在使用rq和q.enqueue_call(...)运行一个作业,在这个作业中我用raiseException('URLnotfound')引发异常我想知道在作业失败后如何从该作业中获取异常消息(“找不到URL”)。我可以获取堆栈跟踪print(get_failed_queue(connection=conn).jobs[-1].exc_info)虽然自己似乎无法获取简短的错误消息。我认为job.result(在使用job=Job.fetch(job_key,connection=conn)获得工作后)会起作用,尽管它返回None 最佳答案

python - 什么是 Python rq 包中的队列类、工作类、作业类

在阅读rqdocs时,我注意到有一些参数可以在启动worker时传递给rqworker例子:rqworker--worker-class'foo.bar.MyWorker'参数列表包括--worker-class或-w:要使用的RQWorker类(例如rqworker--worker-class'foo.bar.MyWorker')--job-class或-j:要使用的RQ作业类。--queue-class:要使用的RQ队列类。什么是工作类、作业类和队列类,什么时候使用它们? 最佳答案 这只是类的继承(例如来自rq的Worker)让

python - 什么是 Python rq 包中的队列类、工作类、作业类

在阅读rqdocs时,我注意到有一些参数可以在启动worker时传递给rqworker例子:rqworker--worker-class'foo.bar.MyWorker'参数列表包括--worker-class或-w:要使用的RQWorker类(例如rqworker--worker-class'foo.bar.MyWorker')--job-class或-j:要使用的RQ作业类。--queue-class:要使用的RQ队列类。什么是工作类、作业类和队列类,什么时候使用它们? 最佳答案 这只是类的继承(例如来自rq的Worker)让

python - 入队调用中的 rq 超时参数不起作用,给出 JobTimeoutException

我正在尝试更改rq作业的超时,但似乎没有任何效果。我有一些效果:my_queue=Queue('my_task',connection=Redis())job_args=(1,2,4)my_queue.enqueue_call(my_func,args=job_args,timeout=2700)但我还是得到了JobTimeoutException:Jobexceededmaximumtimeoutvalue(180seconds)我非常绝望,我什至尝试进入rq模块queue.py并将超时的默认参数更改为2700和DEFAULT_TIMEOUT(在Queue类中定义的变量,其中包含en

python - 入队调用中的 rq 超时参数不起作用,给出 JobTimeoutException

我正在尝试更改rq作业的超时,但似乎没有任何效果。我有一些效果:my_queue=Queue('my_task',connection=Redis())job_args=(1,2,4)my_queue.enqueue_call(my_func,args=job_args,timeout=2700)但我还是得到了JobTimeoutException:Jobexceededmaximumtimeoutvalue(180seconds)我非常绝望,我什至尝试进入rq模块queue.py并将超时的默认参数更改为2700和DEFAULT_TIMEOUT(在Queue类中定义的变量,其中包含en

python - 取消 Python RQ 中已经执行的任务?

我正在使用http://python-rq.org/在Herokuworkerdynos上排队和执行任务。这些是长时间运行的任务,有时我需要在执行过程中取消它们。我如何从Python中做到这一点?fromredisimportRedisfromrqimportQueuefrommy_moduleimportcount_words_at_urlq=Queue(connection=Redis())result=q.enqueue(count_words_at_url,'http://nvie.com')然后在一个单独的过程中我想做的:fromredisimportRedisfromrqi

python - 取消 Python RQ 中已经执行的任务?

我正在使用http://python-rq.org/在Herokuworkerdynos上排队和执行任务。这些是长时间运行的任务,有时我需要在执行过程中取消它们。我如何从Python中做到这一点?fromredisimportRedisfromrqimportQueuefrommy_moduleimportcount_words_at_urlq=Queue(connection=Redis())result=q.enqueue(count_words_at_url,'http://nvie.com')然后在一个单独的过程中我想做的:fromredisimportRedisfromrqi

python - 在 Heroku 上的 RQ 中处理异常处理和重新排队

我有一个用Python在Heroku上运行的网站,我有一个工作人员作为后台进程来处理我不想阻止网页传送的任务,因此不适合web测功机。为此,我使用rq设置了一个队列和Redis。在我的过程中,偶尔会出现自定义异常。对于其中的特定子集,我不想让作业直接进入“失败”队列,而是想将其重新排队几次。我一直在看exceptionhandlerspage在rq主页上,我不清楚一些事情。特别地,它描述了以下编写异常处理程序的方法:defmy_handler(job,exc_type,exc_value,traceback):#docustomthingshere#forexample,writeth

python - 在 Heroku 上的 RQ 中处理异常处理和重新排队

我有一个用Python在Heroku上运行的网站,我有一个工作人员作为后台进程来处理我不想阻止网页传送的任务,因此不适合web测功机。为此,我使用rq设置了一个队列和Redis。在我的过程中,偶尔会出现自定义异常。对于其中的特定子集,我不想让作业直接进入“失败”队列,而是想将其重新排队几次。我一直在看exceptionhandlerspage在rq主页上,我不清楚一些事情。特别地,它描述了以下编写异常处理程序的方法:defmy_handler(job,exc_type,exc_value,traceback):#docustomthingshere#forexample,writeth