GearmanDescriber.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. namespace Mmoreramerino\GearmanBundle\Service;
  3. use Symfony\Component\Console\Output\OutputInterface;
  4. use Symfony\Component\DependencyInjection\ContainerAware;
  5. /**
  6. * Implementation of GearmanDescriber
  7. *
  8. * @author Marc Morera <marc@ulabox.com>
  9. */
  10. class GearmanDescriber extends ContainerAware
  11. {
  12. /**
  13. * Describe Job.
  14. *
  15. * Given a output object and a Job, dscribe it.
  16. *
  17. * @param OutputInterface $output Output object
  18. * @param array $worker Worker array with Job to describe
  19. */
  20. public function describeJob(OutputInterface $output, array $worker)
  21. {
  22. $output->writeln('');
  23. $output->writeln('<info> @Worker\className : '.$worker['className'].'</info>');
  24. $output->writeln('<info> @Worker\fileName : '.$worker['fileName'].'</info>');
  25. $output->writeln('<info> @Worker\namespace : '.$worker['namespace'].'</info>');
  26. $output->writeln('<info> @Worker-jobsnumber : '.count($worker['jobs']).'</info>');
  27. $output->writeln('<info> @Worker\description :</info>');
  28. $output->writeln('');
  29. $output->writeln('<comment> '.$worker['description'].'</comment>');
  30. $output->writeln('');
  31. $job = $worker['job'];
  32. $output->writeln('<info> @job\methodName : '.$job['methodName'].'</info>');
  33. $output->writeln('<info> @job\callableName : '.$job['realCallableName'].'</info>');
  34. $output->writeln('<info> @job\iterations : '.$job['iterations'].'</info>');
  35. $output->writeln('<info> @job\defaultMethod : '.$job['defaultMethod'].'</info>');
  36. $output->writeln('<info> @job\servers :</info>');
  37. $output->writeln('');
  38. foreach ($job['servers'] as $name => $server) {
  39. $output->writeln('<comment> '.$name.' - '.$server.'</comment>');
  40. }
  41. $output->writeln('');
  42. $output->writeln('<info> @job\description :</info>');
  43. $output->writeln('');
  44. $output->writeln('<comment> '.$job['description'].'</comment>');
  45. $output->writeln('');
  46. }
  47. }