Hi,
I am trying to use the background jobs and using frappe.enqueue function by hooks. It is creating the workers but not jobs. Anyone please help me.
Here is the code,
import frappe
import string
from frappe.utils.background_jobs import enqueue
def daily():
frappe.enqueue(
“test_enqueue_function”,
now=False,
queue=“short”,
timeout=1000,
is_async=True,
)
def test_enqueue_function():
print(“\n\n\n enqueue \n\n\n”)
if you pass a string here then make sure it’s dot path to function. e.g. app_name.queue.test_enqueue_function
if you wish to pass it as function directly then don’t use string. import and pass the function itself.
2 Likes
enqueue(method=frappe.method_name, queue=‘short’, timeout=300, is_async=True, **args)
@qrevel ,
I changed the function to dotted path like this
frappe.enqueue(‘gym_management.gym_management.doctype.gym_member.gym_member.long_running_job’, queue=‘short’, now=True, is_async=True, timeout=300, param1=‘A’, param2=‘B’)
Even after that also, getting the error like below
Error message suggests there is error in module path.
Try importing and passing the function instead of using dot path string.