Turn audio into a shareable video. forked from nypublicradio/audiogram

worker 1.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #!/usr/bin/env node
  2. // Require settings first, for validation
  3. require("../lib/settings/");
  4. var dotenv = require("dotenv").config({silent: true}),
  5. Audiogram = require("../audiogram/"),
  6. transports = require("../lib/transports/");
  7. // Can only register fonts once, double-registering throws an error
  8. require("../lib/register-fonts.js");
  9. pluckJob();
  10. function pluckJob(){
  11. console.log('Running');
  12. transports.getJob(function(err, job){
  13. if (err) {
  14. throw err;
  15. }
  16. if (job) {
  17. console.log('I found a job!');
  18. return render(job);
  19. }
  20. setTimeout(pluckJob, delay());
  21. });
  22. }
  23. function render(job) {
  24. var audiogram = new Audiogram(job.id);
  25. audiogram.settings = job;
  26. audiogram.render(function(err){
  27. if (err) {
  28. audiogram.status("error");
  29. audiogram.set("error", err.toString());
  30. throw err;
  31. }
  32. audiogram.status("ready");
  33. if (process.env.SPAWNED) {
  34. return transports.quit();
  35. }
  36. setTimeout(pluckJob, delay());
  37. });
  38. }
  39. function delay() {
  40. return transports.workerDelay ? transports.workerDelay() : 0;
  41. }