A Job is a CFC that extends cbq.models.Jobs.AbstractJob. It can live anywhere in your application.
// models/jobs/emails/SendWelcomeEmailJob.cfc
component extends="cbq.models.Jobs.AbstractJob" {
property name="userId";
function handle() {
log.info( "Sending a Welcome email to User ###getUserId()#" );
/* sample code
var user = getInstance( "User" ).findOrFail( getUserId() );
getInstance( "MailService@cbmailservices" )
.newMail(
from = "no-reply@example.com",
to = user.getEmail(),
subject = "Welcome!",
type = "html"
)
.setView( "/_emails/users/welcome" )
.setBodyTokens( {
"firstName" : user.getFirstName(),
"lastName" : user.getLastName()
} )
.send();
*/
}
}
Create an instance of your Job
You can create an instance of your Job anywhere in your code — handlers, services, models, etc. Populate it with the specific data needed for this instance.
var job = getInstance( "SendWelcomeEmailJob" );
job.setUserId( newUser.getId() );
Dispatch your Job
Once your Job is created and configured, dispatch it to the Queue Connection.
job.dispatch();
Watch your job get executed
Check out LogBox to see your Job being executed. Congratulations! You've dispatched your first background Job using cbq!