Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1871)

Unified Diff: appengine/swarming/handlers_backend.py

Issue 2832203002: task_queues: Add more scaffolding (Closed)
Patch Set: . Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: appengine/swarming/handlers_backend.py
diff --git a/appengine/swarming/handlers_backend.py b/appengine/swarming/handlers_backend.py
index 313bf0d0ab06ac548d6f2f9b9c0741eeeb4f308c..ec64f1900be6e7d5c88ab7f452a7e70256b7c659 100644
--- a/appengine/swarming/handlers_backend.py
+++ b/appengine/swarming/handlers_backend.py
@@ -23,6 +23,7 @@ from server import config
from server import lease_management
from server import stats
from server import task_pack
+from server import task_queues
from server import task_result
from server import task_scheduler
import ts_mon_metrics
@@ -52,6 +53,14 @@ class CronAbortExpiredShardToRunHandler(webapp2.RequestHandler):
self.response.out.write('Success.')
+class CronTaskQueues(webapp2.RequestHandler):
+ @decorators.require_cronjob
+ def get(self):
+ task_queues.tidy_stale()
+ self.response.headers['Content-Type'] = 'text/plain; charset=utf-8'
+ self.response.out.write('Success.')
+
+
class CronMachineProviderBotsUtilizationHandler(webapp2.RequestHandler):
"""Determines Machine Provider bot utilization."""
@@ -183,6 +192,21 @@ class CancelTasksHandler(webapp2.RequestHandler):
task_id, ok, was_running)
+class TaskDimensionsHandler(webapp2.RequestHandler):
+ @decorators.require_taskqueue('task-dimensions')
+ def post(self):
+ self.tidy_stale(self.request.body)
+ self.response.headers['Content-Type'] = 'text/plain; charset=utf-8'
+ self.response.out.write('Success.')
+
+ @staticmethod
+ def tidy_stale(body):
+ payload = body.split('\n')
+ dimensions_hash = int(payload[0])
+ dimensions_flat = payload[1:]
+ task_queues.rebuild_task_cache(dimensions_hash, dimensions_flat)
+
+
class TaskSendPubSubMessage(webapp2.RequestHandler):
"""Sends PubSub notification about task completion."""
@@ -235,12 +259,11 @@ def get_routes():
"""Returns internal urls that should only be accessible via the backend."""
routes = [
# Cron jobs.
- # TODO(maruel): Rename cron.yaml job url. Doing so is a bit annoying since
- # the app version has to be running an already compatible version already.
('/internal/cron/abort_bot_died', CronBotDiedHandler),
('/internal/cron/handle_bot_died', CronBotDiedHandler),
('/internal/cron/abort_expired_task_to_run',
CronAbortExpiredShardToRunHandler),
+ ('/internal/cron/task_queues_tidy', CronTaskQueues),
('/internal/cron/stats/update', stats.InternalStatsUpdateHandler),
('/internal/cron/aggregate_bots_dimensions',
@@ -258,6 +281,7 @@ def get_routes():
# Task queues.
('/internal/taskqueue/cancel-tasks', CancelTasksHandler),
+ ('/internal/taskqueue/task-dimensions', TaskDimensionsHandler),
(r'/internal/taskqueue/pubsub/<task_id:[0-9a-f]+>', TaskSendPubSubMessage),
('/internal/taskqueue/machine-provider-manage',
TaskMachineProviderManagementHandler),

Powered by Google App Engine
This is Rietveld 408576698