Skip to content

Commit

Permalink
Simple task to finish inactive builds
Browse files Browse the repository at this point in the history
Fixes #2795
Fixes #3308
  • Loading branch information
humitos committed Nov 23, 2017
1 parent f93e509 commit 94362e2
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions readthedocs/projects/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

from __future__ import absolute_import

import datetime
import hashlib
import json
import logging
Expand All @@ -20,6 +21,7 @@
from celery.exceptions import SoftTimeLimitExceeded
from django.conf import settings
from django.core.urlresolvers import reverse
from django.db.models import Q
from django.utils.translation import ugettext_lazy as _
from readthedocs_build.config import ConfigError
from slumber.exceptions import HttpClientError
Expand Down Expand Up @@ -1005,3 +1007,15 @@ def sync_callback(_, version_pk, commit, *args, **kwargs):
"""
fileify(version_pk, commit=commit)
update_search(version_pk, commit=commit)


@app.task()
def finish_inactive_builds():
query = (~Q(state=BUILD_STATE_FINISHED) &
Q(date__lte=datetime.datetime.now() - datetime.timedelta(minutes=45)))
# TODO: consider ``poject.container_time_limit`` since it could be bigger than 45 minutes
for build in Build.objects.filter(query):
build.success = False
build.state = BUILD_STATE_FINISHED
build.error = 'This build was terminated due to inactivity.'
build.save()

0 comments on commit 94362e2

Please sign in to comment.