Presentation on theme: "Batch/Queue API What we can learn from Drupal 7 for CiviCRM 4.1."— Presentation transcript:
Batch/Queue API What we can learn from Drupal 7 for CiviCRM 4.1
About myself Chang Xiao Emotive LLC IRC: changx Forum handle: xcf33
Batch. Yum…. A Batch of cookies
Characteristics of Batch Works on right after the series of action desired to be performed is submitted. Provide feedbacks to user on completion status. Example: 3 records imported, etc etc Submit import formImport user 1Import user 2 Import user 3
Benefits Provide user feed back on the progress. (Usually user take it for granted). Good and smooth user experience. Preventing user errors.
Potential Pitfalls Waiting, Waiting and Waiting. PHP settings (timeout, memory, etc) Database settings (MySQL has gone away) Conclusion: Not suitable for large scale operations.
Queue, errr A line on Black Friday
Characteristics of Queue First in First out (FIFO) Processes a series of tasks in sequence Example: 3 records imported, etc etc Submit import form Import Queue
Benefits Can be stopped and resumed at any time. Provides granular scalability and robustness. Separate user input and actual process
Current CiviCRM applications Bulk mailing Each mailing is in a queue. Each mailing contains X number of s and sits in a mailing queue Contact Import ETC
When to use? Batch: Tasks that will exceed php time out Tasks with tolerable time frame (i.e. 5 minutes) Tasks that needs to provide continuous feedback Queue: Tasks that takes a lot of time Tasks that can be stopped and resumed Distribute processing.
Where to use it Exporting contacts Importing process Running large reports CiviMail bulk mailing process Dedupe processes Synchronizing processes Installation/Upgrade