A project’s workflow determines that deployment schedules are managed in one of two ways:
A workflow element flags a project as approved for deployment. When this stage in the workflow occurs, the project appears in the Admin Console in the ATG Business Control Center. A deployment administrator can manually schedule deployment for the project, or set up the
RecurringDeploymentService
to schedule approved projects for automatic deployment in batches at a predetermined time—for example, every night at 3 AM.The workflow is configured to schedule project deployment immediately. Doing so bypasses the need for a deployment administrator or the
RecurringDeploymentService
to schedule deployments.
These two methods differ in one respect: deployments scheduled directly by the workflow create a one-to-one mapping of deployments to projects, while scheduling deployments from the RecurringDeploymentService
or the Admin Console lets you batch several projects into a single deployment.
For details on scheduling a deployment manually in the Admin Console, see Deployment Management. For information about scheduling a deployment automatically via the RecurringDeploymentService
, see Schedule Recurring Deployment.
For information on scheduling a deployment manually or automatically via a project workflow, see Adapting Workflows to Content Management Projects.
Deployment Queue
However a deployment is scheduled, all deployments pass through a deployment queue. Each deployment target maintains a separate queue of deployments. Deployments go immediately into the queue, or the Admin Console assigns them a time to enter the queue. Queued deployments run in order of entry; however, you can reorder them through the Admin Console.
Fulfiller Service
The deployment server has a fulfiller service that periodically passes through each queue and performs tasks such as moving deployments whose deploy time has arrived into the appropriate queue. You can configure the frequency of these tasks through the schedule
property in the /atg/epub/deployment/DeploymentFulfiller
component.
The deployment fulfiller service is solely responsible for starting deployments. When a deployment reaches the head of the deployment queue, the fulfiller acts as follows:
Verifies the target site is in a deployable state—that is, the target site is: accessible, not in an error state, and not running a current deployment.
Moves the deployment out of the queue and into the position of the current deployment.
Starts the deployment and moves on.
Deployments that complete successfully delete themselves and nudge the fulfiller to check the queue for the next deployment. Deployments that fail wait in an error state and display as such in the Admin Console until a deployment administrator corrects the problem or abandons the deployment.
Interrupting Deployments
If necessary, you can suspend and resume target queues individually from the Admin Console. The deployment server never automatically resumes a suspended queue. However, projects can continue to schedule deployments to the suspended queue’s site.
You suspend a queue when you need to bypass the normal deployment fulfiller cycle. After suspending the deployment queue for a specific target site, you can move the desired deployment to the head of the queue, and choose Run Now in the Admin Console. For more information, refer to Deployment Management.