<?php

use Noodlehaus\Config;
use Noodlehaus\Parser\Json;
use Pheanstalk\Pheanstalk;

use BitGoblin\MCST\Runners\RefreshServerDownloads;

require __DIR__ . '/../vendor/autoload.php';

// Load app configuration
$config = Config::load(__DIR__ . '/../conf/defaults.json');

// create pheanstalk object
$pheanstalk = Pheanstalk::create($config->get('beanstalkd.host'), $config->get('beanstalkd.port'));
// we want jobs from 'mcst' tube only.
$pheanstalk->watch('mcst');

while (true) {
  echo "Waiting for a new job...\n";

  // try to reserve a job
  $job = $pheanstalk->reserve();

  // check if we actually got a job before trying to do work
  if (isset($job)) {
    $jobPayload = $job->getData();
    
    switch ($jobPayload) {
      case 'refresh-server-downloads':
        $rsd = new RefreshServerDownloads($config);
        $rsd->start();
        break;
      
      default:
        echo "Runner command " . $jobPayload . " isn't supported.\n";
        break;
    }

    // remove job
    $pheanstalk->delete($job);
  }

  sleep(60);
}