我找不到直接的答案,是否可以仅根据作业的 redis id 重试作业?我想在 Django 中创建一个可以手动重试特定作业的端点,因为我并不总是需要失败的作业来重试自己。
对于我想要做的事情,一个例子可能更清楚:
urls.py
:
urlpatterns = [
path('workorder/<str:order_id>/retry',views.workorder_retry, name='workorderretry'),
]
views.py
:
@api_view(['POST'])
def workorder_retry(request, order_id):
work_order = models.WorkOrder.objects.get(order_id=order_id)
print("work order retry: ")
q = util.rq_setup()
redis_conn = rq.get_connection('default')
old_job = q.fetch_job(str(work_order.job_id))
retried_job = q.enqueue(old_job)