Guest User

Untitled

a guest
Jan 24th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.22 KB | None | 0 0
  1. var CronJob = require('cron').CronJob;
  2. var exec = require("child_process").exec;
  3. var reload = require('require-reload')(require);
  4.  
  5. // Bootstrap the application, configure models, datasources and middleware.
  6. // Sub-apps like REST API are mounted via boot scripts.
  7. boot(app, __dirname, function (err) {
  8. if (err)
  9. throw err;
  10.  
  11. //CRON Job : at midnight
  12. var Boat = app.models.Boat;
  13. var ais_url_france = 'http://data.aishub.net/ws.php?username=XXXXXXXXX&format=1&output=json&compress=0&latmin=40&latmax=52&lonmin=-5&lonmax=10';
  14.  
  15. //start the cronjob on a node env every min
  16. new CronJob('* * * * *', function () {
  17. // get the file and save as a .json
  18. exec('wget "' + ais_url_france + '" -O aishub_france.json', function (error, stdout, stderr) {
  19. // I need to use reload here because the file is stored in memory otherwise and only read once after the first download...
  20. var file = reload('../aishub_france.json');
  21. if (file[0].ERROR === false) {
  22. var boats = file[1];
  23. if (boats.length > 0) {
  24. Boat.destroyAll({typeId: 'aishub_boats'}, function (err, info) {
  25. for (var i = 0; i < boats.length; i++) {
  26. Boat.create({
  27. name: {
  28. fr: boats[i].NAME,
  29. en: boats[i].NAME
  30. },
  31. latlng: {
  32. lat: boats[i].LATITUDE,
  33. lng: boats[i].LONGITUDE
  34. },
  35. typeId: 'aishub_boats'
  36. });
  37. }
  38. ;
  39. });
  40. }
  41. }
  42. });
  43. }, null, true, null);
  44. });
Add Comment
Please, Sign In to add comment