workflows: make it possible to alter jump timeout check frequency (#12782)
Via the WCS_JUMP_TIMEOUT_CHECKS environement variable.
This commit is contained in:
parent
8c6bd68a76
commit
ced4feb552
|
@ -0,0 +1,59 @@
|
|||
<page xmlns="http://projectmallard.org/1.0/"
|
||||
type="topic" id="settings-env" xml:lang="fr">
|
||||
|
||||
<info>
|
||||
<link type="guide" xref="index#system-settings" />
|
||||
<revision docversion="0.1" date="2016-08-01" status="draft"/>
|
||||
<credit type="author">
|
||||
<name>Frédéric Péters</name>
|
||||
<email>fpeters@entrouvert.com</email>
|
||||
</credit>
|
||||
<desc>Quelques options</desc>
|
||||
</info>
|
||||
|
||||
<title>Variables d'environnement</title>
|
||||
|
||||
<p>
|
||||
La majeure partie du paramétrage est accessible via les écrans de paramétrage
|
||||
ou via le fichier <code>site-options.cfg</code>; pour faciliter le travail de
|
||||
configuration quand il s'agit d'informations proches de l'administration
|
||||
système, il existe également la possibilité d'utiliser des variables
|
||||
d'environnement.
|
||||
</p>
|
||||
|
||||
<section>
|
||||
<title>Redirection des emails</title>
|
||||
|
||||
<p>
|
||||
Accessible dans l'écran de paramétrage des options de debug, il est
|
||||
aussi possible de forcer les emails générés par la plateforme à être
|
||||
envoyés vers une adresse unique, en positionnant la variable
|
||||
d'environnement <code>QOMMON_MAIL_REDIRECTION</code>.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Accès au serveur Sentry</title>
|
||||
|
||||
<p>
|
||||
Également accessible depuis l'écran de paramétrage des options de debug, l'adresse (DSN) du serveur Sentry, pour la notification des erreurs
|
||||
applicatives, peut aussi être placée dans la variable d'environnement
|
||||
<code>SENTRY_DSN</code>.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Fréquence de vérification des expirations des sauts</title>
|
||||
|
||||
<p>
|
||||
Par défaut les sauts de workflow sont évalués trois fois par heure, toutes
|
||||
les vingt minutes. Il est possible de définir une autre fréquence dans la
|
||||
variable d'environnement <code>WCS_JUMP_TIMEOUT_CHECKS</code>. Cette
|
||||
variable doit contenir le nombre de vérifications à réaliser par heure, le
|
||||
maximum est d'une vérification toutes les minutes (i.e.
|
||||
<code>WCS_JUMP_TIMEOUT_CHECKS=60</code>).
|
||||
</p>
|
||||
</section>
|
||||
|
||||
</page>
|
||||
|
|
@ -15,6 +15,7 @@
|
|||
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
|
||||
from quixote import get_publisher, get_request, redirect
|
||||
|
@ -29,6 +30,8 @@ from qommon.cron import CronJob
|
|||
from wcs.workflows import Workflow, WorkflowStatusJumpItem, register_item_class
|
||||
from wcs.api import get_user_from_api_query_string, is_url_signed
|
||||
|
||||
JUMP_TIMEOUT_INTERVAL = max((60 // int(os.environ.get('WCS_JUMP_TIMEOUT_CHECKS', '3')), 1))
|
||||
|
||||
def jump_and_perform(formdata, status, workflow_data=None):
|
||||
if workflow_data:
|
||||
formdata.update_workflow_data(workflow_data)
|
||||
|
@ -98,8 +101,7 @@ class JumpWorkflowStatusItem(WorkflowStatusJumpItem):
|
|||
condition = None
|
||||
trigger = None
|
||||
timeout = None
|
||||
_granularity = 20 * 60
|
||||
# default: 20 minutes, see definition of cronjob at the end of the file
|
||||
_granularity = JUMP_TIMEOUT_INTERVAL * 60
|
||||
|
||||
directory_name = 'jump'
|
||||
directory_class = JumpDirectory
|
||||
|
@ -276,7 +278,8 @@ def _apply_timeouts(publisher):
|
|||
break
|
||||
|
||||
if get_publisher_class():
|
||||
# every 20 minutes check for expired status jump timeouts. If you change
|
||||
# cronjob schedule, change also the granularity variable
|
||||
# every JUMP_TIMEOUT_INTERVAL minutes check for expired status jump
|
||||
# timeouts.
|
||||
get_publisher_class().register_cronjob(
|
||||
CronJob(_apply_timeouts, hours=range(24), minutes=range(0, 60, 20)))
|
||||
CronJob(_apply_timeouts,
|
||||
hours=range(24), minutes=range(0, 60, JUMP_TIMEOUT_INTERVAL)))
|
||||
|
|
Loading…
Reference in New Issue