__main__.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. """Main app"""
  2. import time
  3. from app import SCHEDULER, LOGGER
  4. from app.api import get_factories
  5. from app.database import get_state, get_regions, save_factories
  6. def print_factories(factories):
  7. """Print professors"""
  8. for factory in factories:
  9. print('{:30} {:24} {:2} {:3} {:3}'.format(
  10. factory['name'],
  11. factory['region_name'],
  12. factory['resource_type'],
  13. factory['level'],
  14. factory['workers'],
  15. ))
  16. def job_update_factories(state_id):
  17. """Update factories"""
  18. LOGGER.info('Run update factories for state "%s"', state_id)
  19. state = get_state(state_id)
  20. LOGGER.info('"%s": get regions', state.name)
  21. regions = get_regions(state.id)
  22. for region in regions:
  23. LOGGER.info('"%s": get factories', region.name)
  24. factories = get_factories(region.id)
  25. LOGGER.info('"%s": "%s" factories', region.name, len(factories))
  26. print_factories(factories)
  27. # save_factories(region.id, factories)
  28. LOGGER.info('"%s": done saving factories', state.name)
  29. def add_update_factories(state_id):
  30. """Add jobs"""
  31. SCHEDULER.add_job(
  32. job_update_factories,
  33. 'cron',
  34. args=[state_id],
  35. id='factories_{}'.format(state_id),
  36. replace_existing=True,
  37. hour='2,14'
  38. )
  39. if __name__ == '__main__':
  40. job_update_factories(2788)
  41. # jobs
  42. # Verenigde Nederlanden
  43. add_update_factories(2788)
  44. # Belgium
  45. add_update_factories(2604)
  46. # De Provincien
  47. add_update_factories(2620)
  48. try:
  49. while True:
  50. time.sleep(100)
  51. except KeyboardInterrupt:
  52. LOGGER.info('Exiting application')
  53. SCHEDULER.shutdown()
  54. exit()