Example #1
0
    def test_cron_tidy_stale(self):
        now = datetime.datetime(2010, 1, 2, 3, 4, 5)
        self.mock_now(now)
        self.assertEqual(0, _assert_bot())
        request = self._assert_task()
        exp = (request.expiration_ts -
               request.created_ts) + task_queues._ADVANCE
        self.assert_count(1, task_queues.BotTaskDimensions)
        self.assert_count(1, task_queues.TaskDimensions)
        self.assertEqual([2980491642], task_queues.get_queues(u'bot1'))

        # No-op.
        task_queues.cron_tidy_stale()
        self.assert_count(1, task_queues.BotTaskDimensions)
        self.assert_count(1, task_queues.TaskDimensions)
        self.assertEqual([2980491642], task_queues.get_queues(u'bot1'))

        # One second before expiration.
        self.mock_now(now, exp.total_seconds())
        task_queues.cron_tidy_stale()
        self.assert_count(1, task_queues.BotTaskDimensions)
        self.assert_count(1, task_queues.TaskDimensions)
        self.assertEqual([2980491642], task_queues.get_queues(u'bot1'))

        # TaskDimension expired.
        self.mock_now(now, exp.total_seconds() + 1)
        task_queues.cron_tidy_stale()
        self.assert_count(0, task_queues.BotTaskDimensions)
        self.assert_count(0, task_queues.TaskDimensions)
        self.assertEqual([], task_queues.get_queues(u'bot1'))
    def test_cron_tidy_stale(self):
        now = datetime.datetime(2010, 1, 2, 3, 4, 5)
        self.mock_now(now)
        self.assertEqual(0, _assert_bot())
        request = self._assert_task()
        exp = (request.expiration_ts - request.created_ts +
               task_queues._EXTEND_VALIDITY)
        self.assert_count(1, task_queues.BotTaskDimensions)
        self.assert_count(1, task_queues.TaskDimensions)
        bot_root_key = bot_management.get_root_key(u'bot1')
        self.assertEqual([2980491642], task_queues.get_queues(bot_root_key))

        # No-op.
        task_queues.cron_tidy_stale()
        self.assert_count(1, task_queues.BotTaskDimensions)
        self.assert_count(1, task_queues.TaskDimensions)
        self.assertEqual([2980491642], task_queues.get_queues(bot_root_key))

        # TaskDimension expired but is still kept; get_queues() doesn't return it
        # anymore even if still in the DB. BotTaskDimensions was evicted.
        self.mock_now(now, exp.total_seconds() + 1)
        task_queues.cron_tidy_stale()
        self.assert_count(0, task_queues.BotTaskDimensions)
        self.assert_count(1, task_queues.TaskDimensions)
        self.assertEqual([], task_queues.get_queues(bot_root_key))

        # Just before _KEEP_DEAD.
        self.mock_now(now, (exp + task_queues._KEEP_DEAD).total_seconds())
        task_queues.cron_tidy_stale()
        self.assert_count(0, task_queues.BotTaskDimensions)
        self.assert_count(1, task_queues.TaskDimensions)
        self.assertEqual([], task_queues.get_queues(bot_root_key))

        # TaskDimension expired, after KEEP_DEAD.
        self.mock_now(now, (exp + task_queues._KEEP_DEAD).total_seconds() + 1)
        task_queues.cron_tidy_stale()
        self.assert_count(0, task_queues.BotTaskDimensions)
        self.assert_count(0, task_queues.TaskDimensions)
        self.assertEqual([], task_queues.get_queues(bot_root_key))
Example #3
0
 def get(self):
     ndb.get_context().set_cache_policy(lambda _: False)
     task_queues.cron_tidy_stale()
     self.response.headers['Content-Type'] = 'text/plain; charset=utf-8'
     self.response.out.write('Success.')
Example #4
0
 def run_cron(self):
     task_queues.cron_tidy_stale()