import logging
import time

from app import app, namespace_gc_queue, all_queues
from data import model
from workers.queueworker import QueueWorker, JobException
from util.log import logfile_path

logger = logging.getLogger(__name__)


POLL_PERIOD_SECONDS = 60


class NamespaceGCWorker(QueueWorker):
  """ Worker which cleans up namespaces enqueued to be GCed.
  """
  def process_queue_item(self, job_details):
    logger.debug('Got namespace GC queue item: %s', job_details)
    marker_id = job_details['marker_id']
    model.user.delete_namespace_via_marker(marker_id, all_queues)

if __name__ == "__main__":
  logging.config.fileConfig(logfile_path(debug=False), disable_existing_loggers=False)

  logger.debug('Starting namespace GC worker')
  worker = NamespaceGCWorker(namespace_gc_queue, poll_period_seconds=POLL_PERIOD_SECONDS)
  worker.start()