aureja / job-queue-bundle
Installs: 18 311
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 2
Open Issues: 3
Type:symfony-bundle
Requires
- php: >=5.4
- aureja/job-queue: 0.1.*
- symfony/framework-bundle: >=2.7|~3.0
Requires (Dev)
- phpunit/phpunit: ~4.2
Suggests
- silvestra/paginator-bundle: For using the job reports pagination.
This package is auto-updated.
Last update: 2024-11-15 03:29:56 UTC
README
Symfony bundle using Aureja/JobQueue for job queues management.
Installation
Step 1. Install via Composer
composer require aureja/job-queue-bundle "dev-master"
Step 2. Add to AppKernel.php
class AppKernel extends Kernel { /** * {@inheritdoc} */ public function registerBundles() { $bundles = [ // ... new Aureja\Bundle\JobQueueBundle\AurejaJobQueueBundle(), // ... ]; } }
Step 3. Define your entities by extending Aureja models or implementing the interfaces
<?php // src/Acme/YourBundle/Entity/JobReport.php namespace Acme\YourBundle\Entity; use Aureja\JobQueue\Model\JobReport as BaseJobReport; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity * @ORM\Table(name="aureja_job_report") */ class JobReport extends BaseJobReport { /** * {@inheritdoc} * * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="AUTO") */ protected $id; /** * {@inheritdoc} * * @ORM\ManyToOne(targetEntity="Acme\YourBundle\Entity\JobConfiguration") * @ORM\JoinColumn(name="configuration_id", nullable=false, onDelete="CASCADE") */ protected $configuration; // Your custom logic if needed. }
<?php // src/Acme/YourBundle/Entity/JobConfiguration.php namespace Acme\YourBundle\Entity; use Aureja\JobQueue\Model\JobConfiguration as BaseJobConfiguration; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity * @ORM\Table(name="aureja_job_configuration") */ class JobConfiguration extends BaseJobConfiguration { /** * {@inheritdoc} * * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="AUTO") */ protected $id; // Your custom logic if needed. }
Step 4. Update your database schema
Step 5. Configure via app/config/config.yml
# app/config/config.yml aureja_job_queue: db_driver: orm class: model: job_configuration: Acme\YourBundle\Entity\JobConfiguration job_report: Acme\YourBundle\Entity\JobReport # Define queues as an array or as a string with values separated by a comma. queues: - default
Step 6. Import AurejaJobQueue routing files
# app/config/routing.yml aureja_job_queue: resource: "@AurejaJobQueueBundle/Resources/config/routing.xml"
Step 7. Register cronjob to be executed every minute
* * * * * php app/console aureja:job-queue:run