Documentation: Resources/doc
Code License: Resources/meta/LICENSE
Documentation License: Resources/doc/LICENSE
Run and Schedule Symfony Console Commands as Background Jobs
Home Page: http://jmsyst.com/bundles/JMSJobQueueBundle
Documentation: Resources/doc
Code License: Resources/meta/LICENSE
Documentation License: Resources/doc/LICENSE
When deploying application in AWS ElasticBeanstalk new app is extracted in /var/app/current/
directory and running jobs change state to Incomplete
.
That's because AWS quickly switches directories causing script execution fails. Apache receives a graceful restart signal after application is extracted in /var/app/current
(after all running jobs failed).
What would be a good way to terminate runner? Stopping Supervisord? Should a new job be added in database "terminate runner" and when runner finishes all running jobs, then terminates? I guess that wouldn't work since supervisord will restart it again.
Any suggestions on this?
A new option should be added to jms-job-queue:run
command to allow different workers handle different tasks (queues). For example you could have a worker only for downloading images, another one for handling other tasks etc.
Option should accept many queue names such as queue1,queue2
in case we need to consume more than one queues in that worker.
Issue #76 could benefit from this as well.
We have been using this bundle in production for a few days. However, last time we have deployed new code (containing a new job and console command) the job runner failed processing new jobs:
You have requested a non-existent service ...
Stopping and restarting the job runner solved the problem, so I guess this issue is related to our deployment process. We are using capistrano/capifony.
What is the proper way to achieve a graceful restart and make sure that the jobs published after deployment are processed by a fresh job runner? Are we supposed to let the runner stop on its own after maximum runtime has been reached, and let the auto-start mechanism (supervisord) handle the restart?
I am thinking of adding a special shutdown
job in the queue (just before the new code is deployed) that will force the job runner to stop (and let it restart automatically), but maybe I have missed something.
http://jmsyst.com/bundles/JMSJobQueueBundle/master/installation does not mention that DI and AOP bundles have to be enabled before using the JobQueueBundle.
Please add a small hint or something.
Webinterface requires some other bundles to be registered
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
new JMS\DiExtraBundle\JMSDiExtraBundle($this),
new JMS\AopBundle\JMSAopBundle(),
Every time I try to execute "doctrine:schema:update" I get this error:
[Doctrine\DBAL\DBALException]
An exception occurred while executing 'ALTER TABLE jms_jobs CHANGE id id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL, CHANGE exitCode exitCode SMALLINT UNSIGNED DEFAULT NULL, CHANGE maxRuntime maxRuntime SMALLINT UNSIGNED NOT NULL, CHANGE maxRetries maxRetries SMALLINT UNSIGNED NOT NULL, CHANGE runtime runtime SMALLINT UNSIGNED DEFAULT NULL, CHANGE memoryUsage memoryUsage INT UNSIGNED DEFAULT NULL, CHANGE memoryUsageReal memoryUsageReal INT UNSIGNED DEFAULT NULL':SQLSTATE[HY000]: General error: 1025 Error on rename of './my_database/#sql-20d_1e3' to './my_database/jms_jobs' (errno: 150)
The database is MySQL 5.5.25 (comes with MAMP).
Right now it is impossible to replace the TwitterBootstrapView
-instance with another view-type. This is important for when you want to integrate the pages into own layouts, which beside the pagination works quite flawless.
There are no further indirect dependencies.
Hi,
Thanks for the improvements, but please release versions more often. I don't want surprises each time we deploy :). This time there is a new field on the database. It should have been a new version.
thanks!
Hi,
I am curious if anyone has any thoughts on how we could make this bundle work on multiple servers. Here are a few of my thoughts (not neatly organized):
Any thoughts for this?
After having processed more than 100k jobs with this bundle I'd like to suggest the following improvements that will ease the task of checking job.
A dropdown labeled Status
should be added allowing user to query only for jobs in state of:
A date range field(s) (or a calendar picker) could greatly help when need to see what happened during night time. Some common values could also be used in a dropdown:
Also, columns could be sortable. For example you could show most recent failed jobs or oldest pending jobs.
In case of recurring jobs & many jobs are being added all the time, some pending jobs might not appear due to pagination. It is my belief that pending tasks should appear first because most of the times user needs to know what's in the queue.
I could submit PR if community agrees these are handy additions.
I need set environment variables to command, but now if can't do this.
So, I did what.
Create related entity with env var.
Extend RunCommand
(see below) and there set env var for process.
class RunCommand extends \JMS\JobQueueBundle\Command\RunCommand
{
const COMMAND = 'jms-job-queue:run';
/**
* @var Job
*/
protected $job;
/**
* @param Job $job
* @throws \LogicException
*/
protected function startJob(Job $job)
{
$this->job = $job;
parent::startJob($job);
}
/**
* @return ProcessBuilder
*/
protected function getCommandProcessBuilder()
{
$pb = parent::getCommandProcessBuilder();
/** @var Environment $Env */
$Env = $this->job->getRelatedEntities()->first();
if(!$Env) {
$Env = new Environment('common', 'common');
}
$pb->setEnv('SYMFONY__APP', $Env->getApp());
$pb->setEnv('SYMFONY__HOST', $Env->getHost());
return $pb;
}
}
but even in this case there are several problems.
In the original RunCommand
many variables and methods has private
access. And i can't extend this command without edit real class code.
Can you add env variables?
And create bundle more extensible (private
=> protected
)?
We plan to use Job Queue for slow background operations (like .xls report generation). It would be nice to have ability to view progress of the job (in %).
So, basically job will have (int)progress and console command will set progress while executing job.
Its pretty easy to add, will you accept PR with such a change?
Hi
1:) is their any way to set process Builder timeout to null ?
https://github.com/schmittjoh/JMSJobQueueBundle/blob/master/Command/RunCommand.php#L262
2:) is their any way to run jms-job-queue:run as demon?
I'm really not sure if this is the intended functionality, but when the job's command throws an exception the job's state is still set to 'finished' instead of 'failed'.
If it is intended to work this way, what can I do to force a job's state to be 'failed', from the command?
Feature suggestion: Job IDs/Keys
Arbitrary strings, that may be reused later, but must be unique in the queue.
$job = new Job('a');
$job->setId('Update user 123');
$em->persist($job);
$em->flush();
$job = new Job('a');
$job->setId('Update user 123');
$em->persist($job);
$em->flush();
// Should fail, or silently dropped, because job with that ID is already enqueued
$job = new Job('a');
$job->setId('Update user 123');
$em->persist($job);
$em->flush();
// Wait a looong time
$job = new Job('a');
$job->setId('Update user 123');
$em->persist($job);
$em->flush();
// May succeed, when the previous job was processed
null
means "current behaviour".
To be honest: Handling this on the entity manager directly makes me feel a little bit uncomfortable. Is theres a reason, why there is no layer in between (like Queue
with $queue->enqueue($job);
)?
Is this my env or bundle? Just tried to install and run db tables creation... Tried both 1.0.0 and latest dev.
Failing on do:sch:up --force:
An exception occurred while executing 'ALTER TABLE jms_jobs CHANGE id id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL, CHANGE exitCode exitCode SMALLINT UNSIGNED DEFAULT NULL, CHA
NGE maxRuntime maxRuntime SMALLINT UNSIGNED NOT NULL, CHANGE maxRetries maxRetries SMALLINT UNSIGNED NOT NULL, CHANGE runtime runtime SMALLINT UNSIGNED DEFAULT NULL, CHANGE m
emoryUsage memoryUsage INT UNSIGNED DEFAULT NULL, CHANGE memoryUsageReal memoryUsageReal INT UNSIGNED DEFAULT NULL':
SQLSTATE[HY000]: General error: 1025 Error on rename of './amazing_survival/#sql-236_4a' to './amazing_survival/jms_jobs' (errno: 150)```
What about periodic jobs? It would be nice supports something like this
<service id="vendorname.newsfeed.send_greetings" synthetic="true">
<tag name="task" command="vendorname:newsfeed:send-greetings -e prod" cron-expr="10 3 * * *" />
</service>
If the runner command would create a lock on the filesystem (probably with a periodic touch()
to mark it's still alive, and a user configured timeout so you can say if the lock hasn't been touched in an hour just override it) then we could simply run it in a cron job every minute, and it would silently exit if another job is still in progress. It would be a bit easier to setup and maintain than having to run supervisord.
It seems the command you want to queue needs to be JobsQueue aware?
Would you recommend setting up "wrapper commands" to run the ones I actually want executed? Or is there a way to have JobQueueBundle run my commands without adding the --jms-job-id
option to them all?
The json_array type does not seem to be available in the version of my Doctrine DBAL.
Is there any particular reason why the standard array type is not sufficient?
I'd actually prefer if this was used because of the speed advantage of serialized arrays versus JSON - and since I don't see any reason to store the values as JSON.
Hi,
We are having a strange error. One of our tasks randomly gives an error (it's not this library fault) and throws an Exception. The problem comes when the Job is saved with an incorrect stackTrace, as it's incomplete
O:55:"Symfony\Component\HttpKernel\Exception\FlattenException":9:{s:64:"Symfony\Component\HttpKernel\Exception\FlattenExceptionmessage";s:216:"cURL resource: Resource id #902; cURL error: SSL read: error:00000000:lib(0):func(0):reason(0), errno 104 (cURL error code 56). See http://curl.haxx.se/libcurl/c/libcurl-errors.html for an explanation of error codes.";s:61:"Symfony\Component\HttpKernel\Exception\FlattenExceptioncode";i:0;s:65:"Symfony\Component\HttpKernel\Exception\FlattenExceptionprevious";N;s:62:"Symfony\Component\HttpKernel\Exception\FlattenExceptiontrace";a:21:{i:0;a:8:{s:9:"namespace";s:0:"";s:11:"short_class";s:0:"";s:5:"class";s:0:"";s:4:"type";s:0:"";s:8:"function";s:0:"";s:4:"file";s:109:"/var/www/domain.com/shared/vendor/amazonwebservices/aws-sdk-for-php/lib/requestcore/requestcore.class.php";s:4:"line";i:848;s:4:"args";a:0:{}}i:1;a:8:{s:9:"namespace";s:0:"";s:11:"short_class";s:11:"RequestCore";s:5:"class";s:11:"RequestCore";s:4:"type";s:2:"->";s:8:"function";s:12:"send_request";s:4:"file";s:93:"/var/www/domain.com/shared/vendor/amazonwebservices/aws-sdk-for-php/services/s3.class.php";s:4:"line";i:954;s:4:"args";a:0:{}}i:2;a:8:{s:9:"namespace";s:0:"";s:11:"short_class";s:8:"AmazonS3";s:5:"class";s:8:"AmazonS3";s:4:"type";s:2:"->";s:8:"function";s:12:"authenticate";s:4:"file";s:93:"/var/www/domain.com/shared/vendor/amazonwebservices/aws-sdk-for-php/services/s3.class.php";s:4:"line";i:1465;s:4:"args";a:2:{i:0;a:2:{i:0;s:6:"string";i:1;s:8:"bucketname";}i:1;a:2:{i:0;s:5:"array";i:1;a:5:{s:3:"acl";a:2:{i:0;s:6:"string";i:1;s:11:"public-read";}s:4:"body";a:2:{i:0;s:6:"string";i:1;s:192372:"
The string that should follow s:192372:" is an image. The task with the problem uploads images to Amazon S3, and because of a library/Amazon sometimes it's giving an error. As this field is incorrect, we have the following error on the Job running task:
[ErrorException]
Notice: unserialize(): Error at offset 1640 of 1648 bytes in /Users/fesja/Sites/te3/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/ObjectType.php line 48
How can we proceed to not save incorrect stack traces?
Update
I'm already encapsulating the code in a try-catch, but it seems the JobQueueLibrary is capturing the exception first.
try {
// code that uploads the photo to Amazon
...
} catch(\Exception $e) {
throw new \Exception("Error saving the photo on Amazon");
}
I'm queuing up a lot of jobs to read data from an external API and I would like to give them some rest between each batch. I could of course add a sleep(5) to my command but that'll be annoying when I run the same command manually.
Instead I would like to add a command which just sleeps for X seconds and then I could make my actual command dependent on the sleep command. Do you think this would be a good addition to JMSJobQueueBundle? Then I'll wrap up a PR.
Thanks a lot for the bundle. It's great. One improvement that I'd love to have is to group the jobs when you retry failed jobs. Right now I can see the failed jobs and the finished jobs, but I have to read the command-args to check that everything is right.
The list should be all green. So if something fails, I see a red. I fix it and I retry the job. And if it succeeds then the list is all green again. I would be able to see the previous failed jobs in another tab or inside the retried job that has finished.
If nobody takes the effort, I can do it in some weeks. But I really think, from a user experience perspective, that it will help a lot.
Allow to specify an service-id of a different object manager than the default entity manager. The downgrade to ObjectManager
instead of EntityManager
would cover #25 too.
Hello! We use mongo and don't want to use MySQL. Please Could you specify the right way to do it.
Thanks!
Hi,
I juste upgrade one application with Symfony 2.3 and i get this error :
Fatal error: Call to a member function getManagerForClass() on a non-object in ... vendor/jms/job-queue-bundle/JMS/JobQueueBundle/Controller/JobController.php on line 155
I tried to find the issue and i found $this->registry is null.
If you can explain me this bug it,
Thx
How did you manage to send %kernel.root_dir% to your /etc/supervisord.config file ?
Is it possible to make some parameters dynamic regarding a Symfony project path in the Supervisor config file ?
It's not possible to override JobController actions. It will always load the Parent bundle controller and not the child.
The problem seems to be this bundle:
JMS\DiExtraBundle\JMSDiExtraBundle
Just removing that bundle makes the overriding process work by the book. Ofcourse JobQueueBundle doesn't work anymore.
So right now I'm not able to use this bundle at all because i can't extend the functionality and integrate it into my app.
The clean up command is not cleaning up jobs with dependencies. It is just doing a count to see if there are dependencies instead of a check to make sure the dependencies are closed matching the main job.
I would like to validate my project through SensioLabsInsight but I get issues with this bundle because of the missing of databases on SensioLabsInsight VMs.
The main issue is due to composer scripts (clearCache,...) which call app/console, which load JMSJobQueueBundle, which get doctrine connections on boot, and then try to launch mysql connections.
I already fixed some issues on app/console calls by disabling statistics, but the part on the bundle file is not configurable...
I don't know if I can solve this with some workaround or if the bundle must be updated?
After a job fails (even retries), it will be useful to requeue the job from the control panel.
For example, the admin can see the application error, fix it, and requeue the job.
Maybe is as easy as updating some fields on jms_jobs when clicking on some button on the UI.
What do you think=
When I access /jobs in the browser I'm getting this error:
Fatal error: Call to a member function getManagerForClass() on a non-object in /home/me/public_html/project/vendor/jms/job-queue-bundle/JMS/JobQueueBundle/Controller/JobController.php on line 155
When updating the app/console file to use JMS\JobQueueBundle\Console\Application, I get the following error whenever I try to run any console command:
Fatal error: Call to a member function getParameter() on a non-object in vendor/jms/job-queue-bundle/JMS/JobQueueBundle/Console/Application.php on line 32
In the constructer of Console/Application.php, there is a call to $kernel->getContainer(), but the container is only initiated when the doRun method is called
Using Symfony 2.1 on PHP 5.4.6
Why is the replacement of the standard console application needed?
This leads to several disadvantages, for example that a database connection is always created on execution of app/console.
Wouldn't it be better to just implement a command that runs a job by ID?
In our project the tests now fail, because we have no database configured for the tests.
The update SQL in Application::saveDebugInformation is using hardcored camelCase field names (like stackTrace, memoryUsage). My project is configured to use underscore naming strategy for doctrine fields so in my database these fields look like this: stack_trace, memory_usage so of course this SQL fails and results in exception.
Same for stats table.
Hello, these errors appear when statistics are updated.
[Doctrine\DBAL DBALException]
An exception occurred while executing 'UPDATE jms_jobs SET stackTrace = ?, memoryUsage = ?, memoryUsageReal = ? WHERE id = ?' with params
...
SQLSTATE[HY000]: General error: 1100 Table 'jms_job_statistics' was not locked with LOCK TABLES
...
SQLSTATE[HY000]: General error: 1100 Table 'jms_jobs' was not locked with LOCK TABLES
...
The web interface page seems to be rendering as xml. I am using FOSRestBundle if that has anything to do with it. Is there a configuration somewhere I could be missing that would cause this?
We wanted to test for the possibility that there's too many jobs for a single instance to handle, and add more instances to tackle more jobs. From initial tests, this is what looks like is happening:
This is bad for obvious reasons but we also have our jobs create new jobs as needed after they complete. So this compounds the issue by adding new duplicate jobs at the end.
Can Innodb row-locking solve this issue? Has anyone else solved it? Scaling vertically is an option but only for so long. I foresee too many jobs for a single instance.
So I am using doctrine fixtures to pre-load my database with data and it seems that doctrine fixtures has trouble clearing the jms_jobs tables when there are relations.
Is it possible that it is the way the relations are setup in the JMS Bundle?
purging database
[Doctrine\DBAL\DBALException]
An exception occurred while executing 'DELETE FROM jms_jobs':
SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (``.`jms_job_related_entities`, CONSTRAINT `FK_E956F4E
2BE04EA9` FOREIGN KEY (`job_id`) REFERENCES `jms_jobs` (`id`))
I came across to your bundle while searching a job queue solution for my companies framework. It was perfect if it wasn't for the lack of mongodb support so I went ahead and forked the project to add it myself.
Even though there were too many hard coded references to doctrine orm I managed to add some of the base functionality. (you can see it here: https://github.com/eymengunay/JMSJobQueueBundle) I don't prefer to reinvent the wheel but I have seen that mongodb support requires a lot of changes to the current code so before going any further I wanted to ask you if you prefer me to make a pr to your repository or go on as an independent fork.
jms-job-queue:run --verbose --env=prod
The run command always throws this error in the prod env, while it works fine in dev.
PHP Fatal error: Uncaught exception
'Symfony\Component\DependencyInjection\Exception\InvalidArgumentException' with message 'The parameter "jms_job_queue.statistics" must be defined.' in
/home/florin/PhpstormProjects/dubios/app/cache/prod/appProdProjectContainer.php:1149
$kernel->boot();
if ($kernel->getContainer()->getParameter('jms_job_queue.statistics')) {
$this->insertStatStmt = "INSERT INTO jms_job_statistics (job_id, characteristic, createdAt, charValue) VALUES (:jobId, :name, :createdAt, :value)";
register_tick_function(array($this, 'onTick'));
}
the bundle parameters are never registered in the prod container, any idea why?
I get a:
Fatal error: Uncaught exception 'Doctrine\ORM\ORMException' with message 'Unknown Entity namespace alias 'JMSJobQueueBundle'.'
On every console command I do.
Edit:
Only getting this when using the console Application of the JMSJobQueueBundle.
Does it possible? How could I write driver for it?
I am using Symfony 2.6 with SQLSRV and below is simple job creation code:
$job = new Job('myapp:test', array('test-arg'));
$em->persist($job);
$em->flush($job);
and this is throwing following error:
[2015-01-04 16:13:42] request.CRITICAL: Uncaught PHP Exception Doctrine\DBAL\DBALException: "An exception occurred while executing 'INSERT INTO jms_jobs (state, queue, priority, createdAt, startedAt, checkedAt, executeAfter, closedAt, command, args, output, errorOutput, exitCode, maxRuntime, maxRetries, stackTrace, runtime, memoryUsage, memoryUsageReal, originalJob_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' with params ["pending", "default", 0, "2015-01-04 16:13:42.000000", null, null, "2015-01-04 16:13:41.000000", null, "myapp:test", "["test-arg"]", null, null, null, 0, 0, "N;", null, null, null, null]: SQLSTATE [42000, 257]: [Microsoft][SQL Server Native Client 11.0][SQL Server]Implicit conversion from data type nvarchar to varbinary(max) is not allowed. Use the CONVERT function to run this query." at XXXX\vendor\doctrine\dbal\lib\Doctrine\DBAL\DBALException.php line 119 {"exception":"[object](Doctrine\DBAL\DBALException%28code: 0%29: An exception occurred while executing 'INSERT INTO jms_jobs %28state, queue, priority, createdAt, startedAt, checkedAt, executeAfter, closedAt, command, args, output, errorOutput, exitCode, maxRuntime, maxRetries, stackTrace, runtime, memoryUsage, memoryUsageReal, originalJob_id%29 VALUES %28?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?%29' with params ["pending", "default", 0, "2015-01-04 16:13:42.000000", null, null, "2015-01-04 16:13:41.000000", null, "myapp:test", "["test-arg"]", null, null, null, 0, 0, "N;", null, null, null, null]:nnSQLSTATE [42000, 257]: [Microsoft][SQL Server Native Client 11.0][SQL Server]Implicit conversion from data type nvarchar to varbinary%28max) is not allowed. Use the CONVERT function to run this query. at XXXX\vendor\doctrine\dbal\lib\Doctrine\DBAL\DBALException.php:119, Doctrine\DBAL\Driver\SQLSrv\SQLSrvException(code: 0): SQLSTATE [42000, 257]: [Microsoft][SQL Server Native Client 11.0][SQL Server]Implicit conversion from data type nvarchar to varbinary(max) is not allowed. Use the CONVERT function to run this query. at XXXX\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\SQLSrv\SQLSrvException.php:42)"} []
We all know what this means :)
I've tried in two different SF2 instances and always get the same error with every branch:
FatalErrorException: Error: Call to a member function getManagerForClass() on a non-object in /var/www/sf2/vendor/jms/job-queue-bundle/JMS/JobQueueBundle/Controller/JobController.php line 155
When app/console jms-job-queue:run
run a Job this error is returned : sh: 1: exec: exec: not found
I found this condition that add an exec too.
if ( ! defined('PHP_WINDOWS_VERSION_MAJOR')) {
$pb->add('exec');
}
in file Command/RunCommand.php line 266
I do not know if it is normal that the program provokes a double exec with ProcessBuilder.
FYI, I work on Mac OSX, PHP 5.3.17 and Symfony 2.1.2.
This bundle works pretty well but one case where I found it limiting is that I have say 3 types of jobs, and while the types are independent and can be run in parallel, all jobs of a given type have to be run in sequence.
Right now I limit the processes to 1, so everything runs in sequence, but it's obviously delaying things for no reason. If we could somehow define queues in the bundle config perhaps then add jobs to them, we could also configure a maximum amount of processes per queue. I understand it may not be a small task, but it would improve the flexibility a great deal.
Hi there , thanks for this cool Bundle.
The exception is thrown when i create a job and handle to args an array then if i go to /jobs ( the view for jobs).
Example :
$job = new Job('validate:process',
array(
$chunk,
true,
$fileID
));
the job should start a Symfony command where one of the args should be an array.
stack trace :
[1] Twig_Error_Runtime: An exception has been thrown during the rendering of a template ("Warning: strlen() expects parameter 1 to be string, array given in D:\server\home\validator.dev\vendor\jms\job-queue-bundle\JMS\JobQueueBundle\Twig\JobQueueExtension.php line 41") in "JMSJobQueueBundle:Job:overview.html.twig" at line 46.
at n/a
in D:\server\home\validator.dev\app\cache\dev\classes.php line 4523
at Twig_Template->displayBlock('content', array('jobsWithError' => array(), 'jobPager' => object(Pagerfanta), 'jobPagerView' => object(TwitterBootstrapView), 'jobPagerGenerator' => object(Closure), 'assetic' => array('debug' => true, 'vars' => object(ValueContainer), 'use_controller' => true), 'app' => object(GlobalVariables), 'macros' => object(__TwigTemplate_b494c50fab80548105e3f4a6339a50ac7204943067fd22214350d03dd203f0f4)), array('title' => array(object(__TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c), 'block_title'), 'content' => array(object(__TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c), 'block_content'), 'javascripts' => array(object(__TwigTemplate_cada140b30363bab76e3adcd5387b9d34f4877bf99ba06ab632c1dce5db5b35a), 'block_javascripts')))
in D:\server\home\validator.dev\app\cache\dev\twig\ca\da\140b30363bab76e3adcd5387b9d34f4877bf99ba06ab632c1dce5db5b35a.php line 46
at __TwigTemplate_cada140b30363bab76e3adcd5387b9d34f4877bf99ba06ab632c1dce5db5b35a->doDisplay(array('jobsWithError' => array(), 'jobPager' => object(Pagerfanta), 'jobPagerView' => object(TwitterBootstrapView), 'jobPagerGenerator' => object(Closure), 'assetic' => array('debug' => true, 'vars' => object(ValueContainer), 'use_controller' => true), 'app' => object(GlobalVariables), 'macros' => object(__TwigTemplate_b494c50fab80548105e3f4a6339a50ac7204943067fd22214350d03dd203f0f4)), array('title' => array(object(__TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c), 'block_title'), 'content' => array(object(__TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c), 'block_content'), 'javascripts' => array(object(__TwigTemplate_cada140b30363bab76e3adcd5387b9d34f4877bf99ba06ab632c1dce5db5b35a), 'block_javascripts')))
in D:\server\home\validator.dev\app\cache\dev\classes.php line 4574
at Twig_Template->displayWithErrorHandling(array('jobsWithError' => array(), 'jobPager' => object(Pagerfanta), 'jobPagerView' => object(TwitterBootstrapView), 'jobPagerGenerator' => object(Closure), 'assetic' => array('debug' => true, 'vars' => object(ValueContainer), 'use_controller' => true), 'app' => object(GlobalVariables), 'macros' => object(__TwigTemplate_b494c50fab80548105e3f4a6339a50ac7204943067fd22214350d03dd203f0f4)), array('title' => array(object(__TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c), 'block_title'), 'content' => array(object(__TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c), 'block_content'), 'javascripts' => array(object(__TwigTemplate_cada140b30363bab76e3adcd5387b9d34f4877bf99ba06ab632c1dce5db5b35a), 'block_javascripts')))
in D:\server\home\validator.dev\app\cache\dev\classes.php line 4555
at Twig_Template->display(array('jobsWithError' => array(), 'jobPager' => object(Pagerfanta), 'jobPagerView' => object(TwitterBootstrapView), 'jobPagerGenerator' => object(Closure), 'assetic' => array('debug' => true, 'vars' => object(ValueContainer), 'use_controller' => true), 'app' => object(GlobalVariables), 'macros' => object(__TwigTemplate_b494c50fab80548105e3f4a6339a50ac7204943067fd22214350d03dd203f0f4)), array('title' => array(object(__TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c), 'block_title'), 'content' => array(object(__TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c), 'block_content')))
in D:\server\home\validator.dev\app\cache\dev\twig\38\e8\2f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c.php line 27
at __TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c->doDisplay(array('jobsWithError' => array(), 'jobPager' => object(Pagerfanta), 'jobPagerView' => object(TwitterBootstrapView), 'jobPagerGenerator' => object(Closure), 'assetic' => array('debug' => true, 'vars' => object(ValueContainer), 'use_controller' => true), 'app' => object(GlobalVariables)), array('title' => array(object(__TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c), 'block_title'), 'content' => array(object(__TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c), 'block_content')))
in D:\server\home\validator.dev\app\cache\dev\classes.php line 4574
at Twig_Template->displayWithErrorHandling(array('jobsWithError' => array(), 'jobPager' => object(Pagerfanta), 'jobPagerView' => object(TwitterBootstrapView), 'jobPagerGenerator' => object(Closure), 'assetic' => array('debug' => true, 'vars' => object(ValueContainer), 'use_controller' => true), 'app' => object(GlobalVariables)), array('title' => array(object(__TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c), 'block_title'), 'content' => array(object(__TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c), 'block_content')))
in D:\server\home\validator.dev\app\cache\dev\classes.php line 4555
at Twig_Template->display(array('jobsWithError' => array(), 'jobPager' => object(Pagerfanta), 'jobPagerView' => object(TwitterBootstrapView), 'jobPagerGenerator' => object(Closure)))
in D:\server\home\validator.dev\app\cache\dev\classes.php line 4562
at Twig_Template->render(array('jobsWithError' => array(), 'jobPager' => object(Pagerfanta), 'jobPagerView' => object(TwitterBootstrapView), 'jobPagerGenerator' => object(Closure)))
in D:\server\home\validator.dev\vendor\symfony\symfony\src\Symfony\Bridge\Twig\TwigEngine.php line 50
at Symfony\Bridge\Twig\TwigEngine->render('JMSJobQueueBundle:Job:overview.html.twig', array('jobsWithError' => array(), 'jobPager' => object(Pagerfanta), 'jobPagerView' => object(TwitterBootstrapView), 'jobPagerGenerator' => object(Closure)))
in D:\server\home\validator.dev\vendor\symfony\symfony\src\Symfony\Bundle\TwigBundle\TwigEngine.php line 74
at Symfony\Bundle\TwigBundle\TwigEngine->render('JMSJobQueueBundle:Job:overview.html.twig', array('jobsWithError' => array(), 'jobPager' => object(Pagerfanta), 'jobPagerView' => object(TwitterBootstrapView), 'jobPagerGenerator' => object(Closure)))
in D:\server\home\validator.dev\vendor\symfony\symfony\src\Symfony\Bundle\TwigBundle\Debug\TimedTwigEngine.php line 50
at Symfony\Bundle\TwigBundle\Debug\TimedTwigEngine->render('JMSJobQueueBundle:Job:overview.html.twig', array('jobsWithError' => array(), 'jobPager' => object(Pagerfanta), 'jobPagerView' => object(TwitterBootstrapView), 'jobPagerGenerator' => object(Closure)))
in D:\server\home\validator.dev\vendor\symfony\symfony\src\Symfony\Bundle\TwigBundle\TwigEngine.php line 99
at Symfony\Bundle\TwigBundle\TwigEngine->renderResponse('JMSJobQueueBundle:Job:overview.html.twig', array('jobsWithError' => array(), 'jobPager' => object(Pagerfanta), 'jobPagerView' => object(TwitterBootstrapView), 'jobPagerGenerator' => object(Closure)))
in D:\server\home\validator.dev\app\cache\dev\classes.php line 6477
at Sensio\Bundle\FrameworkExtraBundle\EventListener\TemplateListener->onKernelView(object(GetResponseForControllerResultEvent), 'kernel.view', object(ContainerAwareEventDispatcher))
in line
at call_user_func(array(object(TemplateListener), 'onKernelView'), object(GetResponseForControllerResultEvent), 'kernel.view', object(ContainerAwareEventDispatcher))
in D:\server\home\validator.dev\vendor\symfony\symfony\src\Symfony\Component\EventDispatcher\Debug\WrappedListener.php line 59
at Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke(object(GetResponseForControllerResultEvent), 'kernel.view', object(ContainerAwareEventDispatcher))
in line
at call_user_func(object(WrappedListener), object(GetResponseForControllerResultEvent), 'kernel.view', object(ContainerAwareEventDispatcher))
in D:\server\home\validator.dev\app\cache\dev\classes.php line 1741
at Symfony\Component\EventDispatcher\EventDispatcher->doDispatch(array(object(WrappedListener)), 'kernel.view', object(GetResponseForControllerResultEvent))
in D:\server\home\validator.dev\app\cache\dev\classes.php line 1674
at Symfony\Component\EventDispatcher\EventDispatcher->dispatch('kernel.view', object(GetResponseForControllerResultEvent))
in D:\server\home\validator.dev\app\cache\dev\classes.php line 1838
at Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', object(GetResponseForControllerResultEvent))
in D:\server\home\validator.dev\vendor\symfony\symfony\src\Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher.php line 112
at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch('kernel.view', object(GetResponseForControllerResultEvent))
in D:\server\home\validator.dev\app\bootstrap.php.cache line 2978
at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), '1')
in D:\server\home\validator.dev\app\bootstrap.php.cache line 2937
at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), '1', true)
in D:\server\home\validator.dev\app\bootstrap.php.cache line 3086
at Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel->handle(object(Request), '1', true)
in D:\server\home\validator.dev\app\bootstrap.php.cache line 2336
at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
in D:\server\home\validator.dev\httpdocs\app_dev.php line 28
[2] Symfony\Component\Debug\Exception\ContextErrorException: Warning: strlen() expects parameter 1 to be string, array given in D:\server\home\validator.dev\vendor\jms\job-queue-bundle\JMS\JobQueueBundle\Twig\JobQueueExtension.php line 41
at n/a
in D:\server\home\validator.dev\vendor\jms\job-queue-bundle\JMS\JobQueueBundle\Twig\JobQueueExtension.php line 41
at Symfony\Component\Debug\ErrorHandler->handle('2', 'strlen() expects parameter 1 to be string, array given', 'D:\server\home\validator.dev\vendor\jms\job-queue-bundle\JMS\JobQueueBundle\Twig\JobQueueExtension.php', '41', array('args' => array('emails' => array(array('email' => ' [email protected]', 'id' => '146'), array('email' => ' [email protected]', 'id' => '612'), array('email' => '[email protected]', 'id' => '138'), array('email' => '[email protected]', 'id' => '139'), array('email' => '[email protected]', 'id' => '140'), array('email' => '[email protected]', 'id' => '141'), array('email' => '[email protected]', 'id' => '142'), array('email' => '[email protected]', 'id' => '143'), array('email' => '[email protected]', 'id' => '144'), array('email' => '[email protected]', 'id' => '145'), array('email' => '[email protected]', 'id' => '147'), array('email' => '[email protected]', 'id' => '148'), array('email' => '[email protected]', 'id' => '149'), array('email' => '[email protected]', 'id' => '150'), array('email' => '[email protected]', 'id' => '486'), array('email' => '[email protected]', 'id' => '151'), array('email' => '[email protected]', 'id' => '152'), array('email' => '[email protected]', 'id' => '153'), array('email' => '[email protected]', 'id' => '154'), array('email' => '[email protected]', 'id' => '155'), array('email' => '[email protected]', 'id' => '156'), array('email' => '[email protected]', 'id' => '782'), array('email' => '[email protected]', 'id' => '350'), array('email' => '[email protected]', 'id' => '157'), array('email' => '[email protected]', 'id' => '158'), array('email' => '[email protected]', 'id' => '246'), array('email' => '[email protected]', 'id' => '159'), array('email' => '[email protected]', 'id' => '211'), array('email' => '[email protected]', 'id' => '160'), array('email' => '[email protected]', 'id' => '161'))), 'maxLength' => '60', 'str' => '', 'first' => true, 'arg' => array(array('email' => ' [email protected]', 'id' => '146'), array('email' => ' [email protected]', 'id' => '612'), array('email' => '[email protected]', 'id' => '138'), array('email' => '[email protected]', 'id' => '139'), array('email' => '[email protected]', 'id' => '140'), array('email' => '[email protected]', 'id' => '141'), array('email' => '[email protected]', 'id' => '142'), array('email' => '[email protected]', 'id' => '143'), array('email' => '[email protected]', 'id' => '144'), array('email' => '[email protected]', 'id' => '145'), array('email' => '[email protected]', 'id' => '147'), array('email' => '[email protected]', 'id' => '148'), array('email' => '[email protected]', 'id' => '149'), array('email' => '[email protected]', 'id' => '150'), array('email' => '[email protected]', 'id' => '486'), array('email' => '[email protected]', 'id' => '151'), array('email' => '[email protected]', 'id' => '152'), array('email' => '[email protected]', 'id' => '153'), array('email' => '[email protected]', 'id' => '154'), array('email' => '[email protected]', 'id' => '155'), array('email' => '[email protected]', 'id' => '156'), array('email' => '[email protected]', 'id' => '782'), array('email' => '[email protected]', 'id' => '350'), array('email' => '[email protected]', 'id' => '157'), array('email' => '[email protected]', 'id' => '158'), array('email' => '[email protected]', 'id' => '246'), array('email' => '[email protected]', 'id' => '159'), array('email' => '[email protected]', 'id' => '211'), array('email' => '[email protected]', 'id' => '160'), array('email' => '[email protected]', 'id' => '161'))))
in line
at strlen(array(array('email' => ' [email protected]', 'id' => '146'), array('email' => ' [email protected]', 'id' => '612'), array('email' => '[email protected]', 'id' => '138'), array('email' => '[email protected]', 'id' => '139'), array('email' => '[email protected]', 'id' => '140'), array('email' => '[email protected]', 'id' => '141'), array('email' => '[email protected]', 'id' => '142'), array('email' => '[email protected]', 'id' => '143'), array('email' => '[email protected]', 'id' => '144'), array('email' => '[email protected]', 'id' => '145'), array('email' => '[email protected]', 'id' => '147'), array('email' => '[email protected]', 'id' => '148'), array('email' => '[email protected]', 'id' => '149'), array('email' => '[email protected]', 'id' => '150'), array('email' => '[email protected]', 'id' => '486'), array('email' => '[email protected]', 'id' => '151'), array('email' => '[email protected]', 'id' => '152'), array('email' => '[email protected]', 'id' => '153'), array('email' => '[email protected]', 'id' => '154'), array('email' => '[email protected]', 'id' => '155'), array('email' => '[email protected]', 'id' => '156'), array('email' => '[email protected]', 'id' => '782'), array('email' => '[email protected]', 'id' => '350'), array('email' => '[email protected]', 'id' => '157'), array('email' => '[email protected]', 'id' => '158'), array('email' => '[email protected]', 'id' => '246'), array('email' => '[email protected]', 'id' => '159'), array('email' => '[email protected]', 'id' => '211'), array('email' => '[email protected]', 'id' => '160'), array('email' => '[email protected]', 'id' => '161')))
in D:\server\home\validator.dev\vendor\jms\job-queue-bundle\JMS\JobQueueBundle\Twig\JobQueueExtension.php line 41
at JMS\JobQueueBundle\Twig\JobQueueExtension->formatArgs(array('emails' => array(array('email' => ' [email protected]', 'id' => '146'), array('email' => ' [email protected]', 'id' => '612'), array('email' => '[email protected]', 'id' => '138'), array('email' => '[email protected]', 'id' => '139'), array('email' => '[email protected]', 'id' => '140'), array('email' => '[email protected]', 'id' => '141'), array('email' => '[email protected]', 'id' => '142'), array('email' => '[email protected]', 'id' => '143'), array('email' => '[email protected]', 'id' => '144'), array('email' => '[email protected]', 'id' => '145'), array('email' => '[email protected]', 'id' => '147'), array('email' => '[email protected]', 'id' => '148'), array('email' => '[email protected]', 'id' => '149'), array('email' => '[email protected]', 'id' => '150'), array('email' => '[email protected]', 'id' => '486'), array('email' => '[email protected]', 'id' => '151'), array('email' => '[email protected]', 'id' => '152'), array('email' => '[email protected]', 'id' => '153'), array('email' => '[email protected]', 'id' => '154'), array('email' => '[email protected]', 'id' => '155'), array('email' => '[email protected]', 'id' => '156'), array('email' => '[email protected]', 'id' => '782'), array('email' => '[email protected]', 'id' => '350'), array('email' => '[email protected]', 'id' => '157'), array('email' => '[email protected]', 'id' => '158'), array('email' => '[email protected]', 'id' => '246'), array('email' => '[email protected]', 'id' => '159'), array('email' => '[email protected]', 'id' => '211'), array('email' => '[email protected]', 'id' => '160'), array('email' => '[email protected]', 'id' => '161'))))
in D:\server\home\validator.dev\app\cache\dev\twig\b4\94\c50fab80548105e3f4a6339a50ac7204943067fd22214350d03dd203f0f4.php line 96
at __TwigTemplate_b494c50fab80548105e3f4a6339a50ac7204943067fd22214350d03dd203f0f4->getcommand(object(Job))
in D:\server\home\validator.dev\app\cache\dev\twig\38\e8\2f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c.php line 138
at __TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c->block_content(array('jobsWithError' => array(), 'jobPager' => object(Pagerfanta), 'jobPagerView' => object(TwitterBootstrapView), 'jobPagerGenerator' => object(Closure), 'assetic' => array('debug' => true, 'vars' => object(ValueContainer), 'use_controller' => true), 'app' => object(GlobalVariables), 'macros' => object(__TwigTemplate_b494c50fab80548105e3f4a6339a50ac7204943067fd22214350d03dd203f0f4)), array('title' => array(object(__TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c), 'block_title'), 'content' => array(object(__TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c), 'block_content'), 'javascripts' => array(object(__TwigTemplate_cada140b30363bab76e3adcd5387b9d34f4877bf99ba06ab632c1dce5db5b35a), 'block_javascripts')))
in D:\server\home\validator.dev\app\cache\dev\classes.php line 4519
at Twig_Template->displayBlock('content', array('jobsWithError' => array(), 'jobPager' => object(Pagerfanta), 'jobPagerView' => object(TwitterBootstrapView), 'jobPagerGenerator' => object(Closure), 'assetic' => array('debug' => true, 'vars' => object(ValueContainer), 'use_controller' => true), 'app' => object(GlobalVariables), 'macros' => object(__TwigTemplate_b494c50fab80548105e3f4a6339a50ac7204943067fd22214350d03dd203f0f4)), array('title' => array(object(__TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c), 'block_title'), 'content' => array(object(__TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c), 'block_content'), 'javascripts' => array(object(__TwigTemplate_cada140b30363bab76e3adcd5387b9d34f4877bf99ba06ab632c1dce5db5b35a), 'block_javascripts')))
in D:\server\home\validator.dev\app\cache\dev\twig\ca\da\140b30363bab76e3adcd5387b9d34f4877bf99ba06ab632c1dce5db5b35a.php line 46
at __TwigTemplate_cada140b30363bab76e3adcd5387b9d34f4877bf99ba06ab632c1dce5db5b35a->doDisplay(array('jobsWithError' => array(), 'jobPager' => object(Pagerfanta), 'jobPagerView' => object(TwitterBootstrapView), 'jobPagerGenerator' => object(Closure), 'assetic' => array('debug' => true, 'vars' => object(ValueContainer), 'use_controller' => true), 'app' => object(GlobalVariables), 'macros' => object(__TwigTemplate_b494c50fab80548105e3f4a6339a50ac7204943067fd22214350d03dd203f0f4)), array('title' => array(object(__TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c), 'block_title'), 'content' => array(object(__TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c), 'block_content'), 'javascripts' => array(object(__TwigTemplate_cada140b30363bab76e3adcd5387b9d34f4877bf99ba06ab632c1dce5db5b35a), 'block_javascripts')))
in D:\server\home\validator.dev\app\cache\dev\classes.php line 4574
at Twig_Template->displayWithErrorHandling(array('jobsWithError' => array(), 'jobPager' => object(Pagerfanta), 'jobPagerView' => object(TwitterBootstrapView), 'jobPagerGenerator' => object(Closure), 'assetic' => array('debug' => true, 'vars' => object(ValueContainer), 'use_controller' => true), 'app' => object(GlobalVariables), 'macros' => object(__TwigTemplate_b494c50fab80548105e3f4a6339a50ac7204943067fd22214350d03dd203f0f4)), array('title' => array(object(__TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c), 'block_title'), 'content' => array(object(__TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c), 'block_content'), 'javascripts' => array(object(__TwigTemplate_cada140b30363bab76e3adcd5387b9d34f4877bf99ba06ab632c1dce5db5b35a), 'block_javascripts')))
in D:\server\home\validator.dev\app\cache\dev\classes.php line 4555
at Twig_Template->display(array('jobsWithError' => array(), 'jobPager' => object(Pagerfanta), 'jobPagerView' => object(TwitterBootstrapView), 'jobPagerGenerator' => object(Closure), 'assetic' => array('debug' => true, 'vars' => object(ValueContainer), 'use_controller' => true), 'app' => object(GlobalVariables), 'macros' => object(__TwigTemplate_b494c50fab80548105e3f4a6339a50ac7204943067fd22214350d03dd203f0f4)), array('title' => array(object(__TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c), 'block_title'), 'content' => array(object(__TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c), 'block_content')))
in D:\server\home\validator.dev\app\cache\dev\twig\38\e8\2f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c.php line 27
at __TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c->doDisplay(array('jobsWithError' => array(), 'jobPager' => object(Pagerfanta), 'jobPagerView' => object(TwitterBootstrapView), 'jobPagerGenerator' => object(Closure), 'assetic' => array('debug' => true, 'vars' => object(ValueContainer), 'use_controller' => true), 'app' => object(GlobalVariables)), array('title' => array(object(__TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c), 'block_title'), 'content' => array(object(__TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c), 'block_content')))
in D:\server\home\validator.dev\app\cache\dev\classes.php line 4574
at Twig_Template->displayWithErrorHandling(array('jobsWithError' => array(), 'jobPager' => object(Pagerfanta), 'jobPagerView' => object(TwitterBootstrapView), 'jobPagerGenerator' => object(Closure), 'assetic' => array('debug' => true, 'vars' => object(ValueContainer), 'use_controller' => true), 'app' => object(GlobalVariables)), array('title' => array(object(__TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c), 'block_title'), 'content' => array(object(__TwigTemplate_38e82f1279eee81d3351d044d3fb125a162a341cd5eb2b4100f52d5ccf3ff09c), 'block_content')))
in D:\server\home\validator.dev\app\cache\dev\classes.php line 4555
at Twig_Template->display(array('jobsWithError' => array(), 'jobPager' => object(Pagerfanta), 'jobPagerView' => object(TwitterBootstrapView), 'jobPagerGenerator' => object(Closure)))
in D:\server\home\validator.dev\app\cache\dev\classes.php line 4562
at Twig_Template->render(array('jobsWithError' => array(), 'jobPager' => object(Pagerfanta), 'jobPagerView' => object(TwitterBootstrapView), 'jobPagerGenerator' => object(Closure)))
in D:\server\home\validator.dev\vendor\symfony\symfony\src\Symfony\Bridge\Twig\TwigEngine.php line 50
at Symfony\Bridge\Twig\TwigEngine->render('JMSJobQueueBundle:Job:overview.html.twig', array('jobsWithError' => array(), 'jobPager' => object(Pagerfanta), 'jobPagerView' => object(TwitterBootstrapView), 'jobPagerGenerator' => object(Closure)))
in D:\server\home\validator.dev\vendor\symfony\symfony\src\Symfony\Bundle\TwigBundle\TwigEngine.php line 74
at Symfony\Bundle\TwigBundle\TwigEngine->render('JMSJobQueueBundle:Job:overview.html.twig', array('jobsWithError' => array(), 'jobPager' => object(Pagerfanta), 'jobPagerView' => object(TwitterBootstrapView), 'jobPagerGenerator' => object(Closure)))
in D:\server\home\validator.dev\vendor\symfony\symfony\src\Symfony\Bundle\TwigBundle\Debug\TimedTwigEngine.php line 50
at Symfony\Bundle\TwigBundle\Debug\TimedTwigEngine->render('JMSJobQueueBundle:Job:overview.html.twig', array('jobsWithError' => array(), 'jobPager' => object(Pagerfanta), 'jobPagerView' => object(TwitterBootstrapView), 'jobPagerGenerator' => object(Closure)))
in D:\server\home\validator.dev\vendor\symfony\symfony\src\Symfony\Bundle\TwigBundle\TwigEngine.php line 99
at Symfony\Bundle\TwigBundle\TwigEngine->renderResponse('JMSJobQueueBundle:Job:overview.html.twig', array('jobsWithError' => array(), 'jobPager' => object(Pagerfanta), 'jobPagerView' => object(TwitterBootstrapView), 'jobPagerGenerator' => object(Closure)))
in D:\server\home\validator.dev\app\cache\dev\classes.php line 6477
at Sensio\Bundle\FrameworkExtraBundle\EventListener\TemplateListener->onKernelView(object(GetResponseForControllerResultEvent), 'kernel.view', object(ContainerAwareEventDispatcher))
in line
at call_user_func(array(object(TemplateListener), 'onKernelView'), object(GetResponseForControllerResultEvent), 'kernel.view', object(ContainerAwareEventDispatcher))
in D:\server\home\validator.dev\vendor\symfony\symfony\src\Symfony\Component\EventDispatcher\Debug\WrappedListener.php line 59
at Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke(object(GetResponseForControllerResultEvent), 'kernel.view', object(ContainerAwareEventDispatcher))
in line
at call_user_func(object(WrappedListener), object(GetResponseForControllerResultEvent), 'kernel.view', object(ContainerAwareEventDispatcher))
in D:\server\home\validator.dev\app\cache\dev\classes.php line 1741
at Symfony\Component\EventDispatcher\EventDispatcher->doDispatch(array(object(WrappedListener)), 'kernel.view', object(GetResponseForControllerResultEvent))
in D:\server\home\validator.dev\app\cache\dev\classes.php line 1674
at Symfony\Component\EventDispatcher\EventDispatcher->dispatch('kernel.view', object(GetResponseForControllerResultEvent))
in D:\server\home\validator.dev\app\cache\dev\classes.php line 1838
at Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', object(GetResponseForControllerResultEvent))
in D:\server\home\validator.dev\vendor\symfony\symfony\src\Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher.php line 112
at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch('kernel.view', object(GetResponseForControllerResultEvent))
in D:\server\home\validator.dev\app\bootstrap.php.cache line 2978
at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), '1')
in D:\server\home\validator.dev\app\bootstrap.php.cache line 2937
at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), '1', true)
in D:\server\home\validator.dev\app\bootstrap.php.cache line 3086
at Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel->handle(object(Request), '1', true)
in D:\server\home\validator.dev\app\bootstrap.php.cache line 2336
at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
in D:\server\home\validator.dev\httpdocs\app_dev.php line 28
I thinks its only a twig issue , as in the DB the jobs a stored fine
Allow to tag a job with multiple tags and allow to include / exclude tags on the command.
So, for example, I can run a command with video_conversion tag (a long running task) and another command with email_sending tag (a quick and important task).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.