fix(cli): Trigger Scheduler Event (#12955)
* Triggers events via Scheduled Job Type's execute method * Exits with code 1 if no event with that name found or process termination * Added feedback if event not found
This commit is contained in:
parent
d4e5c88419
commit
d37d0007ea
1 changed files with 15 additions and 4 deletions
|
|
@ -18,22 +18,33 @@ def _is_scheduler_enabled():
|
|||
|
||||
return enable_scheduler
|
||||
|
||||
@click.command('trigger-scheduler-event')
|
||||
@click.argument('event')
|
||||
|
||||
@click.command("trigger-scheduler-event", help="Trigger a scheduler event")
|
||||
@click.argument("event")
|
||||
@pass_context
|
||||
def trigger_scheduler_event(context, event):
|
||||
"Trigger a scheduler event"
|
||||
import frappe.utils.scheduler
|
||||
|
||||
exit_code = 0
|
||||
|
||||
for site in context.sites:
|
||||
try:
|
||||
frappe.init(site=site)
|
||||
frappe.connect()
|
||||
frappe.utils.scheduler.trigger(site, event, now=True)
|
||||
try:
|
||||
frappe.get_doc("Scheduled Job Type", {"method": event}).execute()
|
||||
except frappe.DoesNotExistError:
|
||||
click.secho(f"Event {event} does not exist!", fg="red")
|
||||
exit_code = 1
|
||||
finally:
|
||||
frappe.destroy()
|
||||
|
||||
if not context.sites:
|
||||
raise SiteNotSpecifiedError
|
||||
|
||||
sys.exit(exit_code)
|
||||
|
||||
|
||||
@click.command('enable-scheduler')
|
||||
@pass_context
|
||||
def enable_scheduler(context):
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue