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:
gavin 2021-04-22 12:41:31 +05:30 committed by Suraj Shetty
parent d4e5c88419
commit d37d0007ea

View file

@ -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):