Skip to end of metadata
Go to start of metadata

<ac:macro ac:name="info"><ac:parameter ac:name="title">New Proposal Template</ac:parameter><ac:rich-text-body>
<p>This page has been created from a template that uses "zones." To proceed:</p>

<li>Edit the page</li>
<li>Replace sample content within each zone-data tag with your own content</li>
<li>Remove this notice</li>
<li>Save the page</li>
<li>When you are ready for community review, move this page to the <ac:link><ri:page ri:content-title="Ready for Review" /></ac:link> section on the edit page.</li>

<ac:macro ac:name="note"><ac:parameter ac:name="title">No placeholders allowed!</ac:parameter><ac:rich-text-body>
<p>Please do not create placeholders. Wait until you have sufficient content to replace all sample data in the proposal template before creating your proposal document.</p></ac:rich-text-body></ac:macro></ac:rich-text-body></ac:macro>

<ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body><![CDATA[

<ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body><![CDATA[

Zend Framework: Zend_Schedule Component Proposal

Proposed Component Name Zend_Schedule
Developer Notes
Proposers Mark Corti
Zend Liaison TBD
Revision 1.0 - 28 July 2009: Initial Draft. (wiki revision: 9)

Table of Contents

1. Overview

Zend_Schedule is a task scheduling component providing scaffolding for running routine tasks from the cron (or equivalent).

2. References

3. Component Requirements, Constraints, and Acceptance Criteria

  • This component will only work in a CLI environment
  • This component will not implement scheduling itself; scheduling will be done externally, e.g. by calling scripts from the cron.
  • This component will use Zend_Application_Bootstrap so it can be run with the same configuration as another ZF application
  • This component will allow easy execution of batches of tasks
  • This component will allow ordering of task execution (this feature may not be present in initial release)

4. Dependencies on Other Framework Components

  • Zend_Exception
  • Zend_Loader
  • Zend_Application

5. Theory of Operation

The component is instantiated from a CLI PHP script. Zend_Schedule_Task objects are added to it, and then Zend_Schedule_Task methods (or batches of methods) are assigned to be executed at that time

6. Milestones / Tasks

  • Milestone 1: Finalise proposal
  • Milestone 2: [IN PROGRESS]\ Working prototype written supporting use cases
  • Milestone 3: [IN PROGRESS]\ Unit tests exist & work
  • Milestone 4: Reformat all code to conform to ZF coding standards
  • Milestone 5: Check in prototype & tests to SVN
  • Milestone 6: Initial documentation exists.

7. Class Index

  • Zend_Schedule
  • Zend_Schedule_Task
  • Zend_Schedule_Exception

8. Use Cases


Running a batch of tasks to prune the database and to send emails every day

9. Class Skeletons



Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Aug 04, 2009

    <p>Hi, </p>

    <p>I think tasks should have their own schedule time. In your examples you set it directly to the scheduler. In Quartz (job scheduling system written in Java) special triggers are used to set the time of job scheduling.</p>

    <p>Examples of the trigger usage can be found in the Quartz's manual:
    <a class="external-link" href=""></a></p>

  2. Aug 24, 2009

    <p>Why is this better than using the cron to schedule tasks? </p>

    <p>If we had a built-in scheduler, we'd have a script cronned to run every minute, check if there was anything to run, and then run it. It seems like wheel-reinvention to me.</p>

    <p>What are your thoughts?</p>

  3. Feb 06, 2011

    <p>Archiving this proposal, feel free to recover it when you want to work on it again. For more details see <a href="">this email</a>.</p>