Purpose ###
To run a task once or repeatedly at a specified time.
Scheduler ---Get pending emails Send()
Email ---Email subject content event_id schedule
Schedule ---frequency send_at
System Defined events ---event_id event_name event_label enabled
- Use Case:
user accepts offer
- Scheduler:
fire_event( job_offer_accepted, data )
- process_event_notifications
email[] = getEmailsByEvent( job_offer_accepted )
email->parseTemplate( $data )
queueEmails(email[])
execute()
Email can be attached to system events
Emitter ---addListener('event.name', $listener) emitter->emit($event)
Event ------name data = []