mirror of
https://github.com/django-q2/django-q2.git
synced 2026-10-08 23:48:12 +08:00
Add meaningfull process titles with currently running task name (#57)
* Customize process names (in ps/top) and add task name in logs * Increase severity of reincarnate log messages and add task name * Document setproctitle optional dependency Co-authored-by: Marc Sabatier <37879561+msabatier@users.noreply.github.com> Co-authored-by: Stan Triepels <1939656+GDay@users.noreply.github.com>
This commit is contained in:
co-authored by
Stan Triepels
parent
650c3b1524
commit
17c1609f10
+57
-18
@@ -33,6 +33,7 @@ from django_q.conf import (
|
|||||||
get_ppid,
|
get_ppid,
|
||||||
logger,
|
logger,
|
||||||
psutil,
|
psutil,
|
||||||
|
setproctitle,
|
||||||
resource,
|
resource,
|
||||||
)
|
)
|
||||||
from django_q.humanhash import humanize
|
from django_q.humanhash import humanize
|
||||||
@@ -59,6 +60,8 @@ class Cluster:
|
|||||||
signal.signal(signal.SIGINT, self.sig_handler)
|
signal.signal(signal.SIGINT, self.sig_handler)
|
||||||
|
|
||||||
def start(self) -> int:
|
def start(self) -> int:
|
||||||
|
if setproctitle:
|
||||||
|
setproctitle.setproctitle(f"qcluster {current_process().name} {self.name}")
|
||||||
# Start Sentinel
|
# Start Sentinel
|
||||||
self.stop_event = Event()
|
self.stop_event = Event()
|
||||||
self.start_event = Event()
|
self.start_event = Event()
|
||||||
@@ -217,13 +220,13 @@ class Sentinel:
|
|||||||
db.connections.close_all()
|
db.connections.close_all()
|
||||||
if process == self.monitor:
|
if process == self.monitor:
|
||||||
self.monitor = self.spawn_monitor()
|
self.monitor = self.spawn_monitor()
|
||||||
logger.error(
|
logger.critical(
|
||||||
_("reincarnated monitor %(name)s after sudden death")
|
_("reincarnated monitor %(name)s after sudden death")
|
||||||
% {"name": process.name}
|
% {"name": process.name}
|
||||||
)
|
)
|
||||||
elif process == self.pusher:
|
elif process == self.pusher:
|
||||||
self.pusher = self.spawn_pusher()
|
self.pusher = self.spawn_pusher()
|
||||||
logger.error(
|
logger.critical(
|
||||||
_("reincarnated pusher %(name)s after sudden death")
|
_("reincarnated pusher %(name)s after sudden death")
|
||||||
% {"name": process.name}
|
% {"name": process.name}
|
||||||
)
|
)
|
||||||
@@ -233,15 +236,30 @@ class Sentinel:
|
|||||||
if process.timer.value == 0:
|
if process.timer.value == 0:
|
||||||
# only need to terminate on timeout, otherwise we risk destabilizing
|
# only need to terminate on timeout, otherwise we risk destabilizing
|
||||||
# the queues
|
# the queues
|
||||||
|
task_name = ""
|
||||||
|
if psutil:
|
||||||
|
try:
|
||||||
|
process_name = psutil.Process(process.pid).name()
|
||||||
|
name_splits = process_name.split(" ")
|
||||||
|
task_name = name_splits[3] if len(name_splits) >= 4 and name_splits[2] == "processing" else ""
|
||||||
|
except psutil.NoSuchProcess:
|
||||||
|
pass
|
||||||
process.terminate()
|
process.terminate()
|
||||||
logger.warning(
|
if task_name:
|
||||||
_("reincarnated worker %(name)s after timeout")
|
msg = (
|
||||||
% {"name": process.name}
|
_("reincarnated worker %(name)s after timeout while processing task %(task_name)s")
|
||||||
)
|
% {"name": process.name, "task_name": task_name}
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
msg = (
|
||||||
|
_("reincarnated worker %(name)s after timeout")
|
||||||
|
% {"name": process.name}
|
||||||
|
)
|
||||||
|
logger.critical(msg)
|
||||||
elif int(process.timer.value) == -2:
|
elif int(process.timer.value) == -2:
|
||||||
logger.info(_("recycled worker %(name)s") % {"name": process.name})
|
logger.info(_("recycled worker %(name)s") % {"name": process.name})
|
||||||
else:
|
else:
|
||||||
logger.error(
|
logger.critical(
|
||||||
_("reincarnated worker %(name)s after death")
|
_("reincarnated worker %(name)s after death")
|
||||||
% {"name": process.name}
|
% {"name": process.name}
|
||||||
)
|
)
|
||||||
@@ -358,9 +376,12 @@ def pusher(task_queue: Queue, event: Event, broker: Broker = None):
|
|||||||
"""
|
"""
|
||||||
if not broker:
|
if not broker:
|
||||||
broker = get_broker()
|
broker = get_broker()
|
||||||
|
proc_name = current_process().name
|
||||||
|
if setproctitle:
|
||||||
|
setproctitle.setproctitle(f"qcluster {proc_name} pusher")
|
||||||
logger.info(
|
logger.info(
|
||||||
_("%(process_name)s pushing tasks at %(id)s")
|
_("%(name)s pushing tasks at %(id)s")
|
||||||
% {"process_name": current_process().name, "id": current_process().pid}
|
% {"name": proc_name, "id": current_process().pid}
|
||||||
)
|
)
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
@@ -398,9 +419,11 @@ def monitor(result_queue: Queue, broker: Broker = None):
|
|||||||
"""
|
"""
|
||||||
if not broker:
|
if not broker:
|
||||||
broker = get_broker()
|
broker = get_broker()
|
||||||
name = current_process().name
|
proc_name = current_process().name
|
||||||
|
if setproctitle:
|
||||||
|
setproctitle.setproctitle(f"qcluster {proc_name} monitor")
|
||||||
logger.info(
|
logger.info(
|
||||||
_("%(name)s monitoring at %(id)s") % {"name": name, "id": current_process().pid}
|
_("%(name)s monitoring at %(id)s") % {"name": proc_name, "id": current_process().pid}
|
||||||
)
|
)
|
||||||
for task in iter(result_queue.get, "STOP"):
|
for task in iter(result_queue.get, "STOP"):
|
||||||
# save the result
|
# save the result
|
||||||
@@ -432,7 +455,7 @@ def monitor(result_queue: Queue, broker: Broker = None):
|
|||||||
"task_result": task["result"],
|
"task_result": task["result"],
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
logger.info(_("%(name)s stopped monitoring results") % {"name": name})
|
logger.info(_("%(name)s stopped monitoring results") % {"name": proc_name})
|
||||||
|
|
||||||
|
|
||||||
def worker(
|
def worker(
|
||||||
@@ -451,6 +474,8 @@ def worker(
|
|||||||
_("%(proc_name)s ready for work at %(id)s")
|
_("%(proc_name)s ready for work at %(id)s")
|
||||||
% {"proc_name": proc_name, "id": current_process().pid}
|
% {"proc_name": proc_name, "id": current_process().pid}
|
||||||
)
|
)
|
||||||
|
if setproctitle:
|
||||||
|
setproctitle.setproctitle(f"qcluster {proc_name} idle")
|
||||||
task_count = 0
|
task_count = 0
|
||||||
if timeout is None:
|
if timeout is None:
|
||||||
timeout = -1
|
timeout = -1
|
||||||
@@ -459,18 +484,30 @@ def worker(
|
|||||||
result = None
|
result = None
|
||||||
timer.value = -1 # Idle
|
timer.value = -1 # Idle
|
||||||
task_count += 1
|
task_count += 1
|
||||||
|
f = task["func"]
|
||||||
|
|
||||||
|
# Log task creation and set process name
|
||||||
# Get the function from the task
|
# Get the function from the task
|
||||||
func = task["func"]
|
func_name = get_func_repr(f)
|
||||||
func_name = get_func_repr(func)
|
task_name = task["name"]
|
||||||
logger.info(
|
task_desc = (
|
||||||
_("%(proc_name)s processing '%(func_name)s' (%(task_name)s)")
|
_("%(proc_name)s processing %(task_name)s '%(func_name)s'")
|
||||||
% {
|
% {
|
||||||
"proc_name": proc_name,
|
"proc_name": proc_name,
|
||||||
"func_name": func_name,
|
"func_name": func_name,
|
||||||
"task_name": task["name"],
|
"task_name": task_name,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
f = task["func"]
|
if "group" in task:
|
||||||
|
task_desc += f" [{task['group']}]"
|
||||||
|
logger.info(task_desc)
|
||||||
|
|
||||||
|
if setproctitle:
|
||||||
|
proc_title = f"qcluster {proc_name} processing {task_name} '{func_name}'"
|
||||||
|
if "group" in task:
|
||||||
|
proc_title += f" [{task['group']}]"
|
||||||
|
setproctitle.setproctitle(proc_title)
|
||||||
|
|
||||||
# if it's not an instance try to get it from the string
|
# if it's not an instance try to get it from the string
|
||||||
if not callable(f):
|
if not callable(f):
|
||||||
# locate() returns None if f cannot be loaded
|
# locate() returns None if f cannot be loaded
|
||||||
@@ -500,6 +537,8 @@ def worker(
|
|||||||
task["stopped"] = timezone.now()
|
task["stopped"] = timezone.now()
|
||||||
result_queue.put(task)
|
result_queue.put(task)
|
||||||
timer.value = -1 # Idle
|
timer.value = -1 # Idle
|
||||||
|
if setproctitle:
|
||||||
|
setproctitle.setproctitle(f"qcluster {proc_name} idle")
|
||||||
# Recycle
|
# Recycle
|
||||||
if task_count == Conf.RECYCLE or rss_check():
|
if task_count == Conf.RECYCLE or rss_check():
|
||||||
timer.value = -2 # Recycled
|
timer.value = -2 # Recycled
|
||||||
|
|||||||
@@ -27,6 +27,11 @@ try:
|
|||||||
except ModuleNotFoundError:
|
except ModuleNotFoundError:
|
||||||
resource = None
|
resource = None
|
||||||
|
|
||||||
|
try:
|
||||||
|
import setproctitle
|
||||||
|
except ModuleNotFoundError:
|
||||||
|
setproctitle = None
|
||||||
|
|
||||||
|
|
||||||
class Conf:
|
class Conf:
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -42,17 +42,18 @@ msgstr "Q-Cluster %(name)s wird gestartet."
|
|||||||
msgid "Q Cluster %(name)s stopping."
|
msgid "Q Cluster %(name)s stopping."
|
||||||
msgstr "Q-Cluster {name} wird gestoppt."
|
msgstr "Q-Cluster {name} wird gestoppt."
|
||||||
|
|
||||||
#: cluster.py:87
|
#: cluster.py:91
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Q Cluster %(name)s has stopped."
|
msgid "Q Cluster %(name)s has stopped."
|
||||||
msgstr "Q-Cluster %(name)s wurde gestoppt."
|
msgstr "Q-Cluster %(name)s wurde gestoppt."
|
||||||
|
|
||||||
|
|
||||||
#: cluster.py:94
|
#: cluster.py:94
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(name)s got signal %(signal)s"
|
msgid "%(name)s got signal %(signal)s"
|
||||||
msgstr "%(name)s erhielt das Signal %(signal)s"
|
msgstr "%(name)s erhielt das Signal %(signal)s"
|
||||||
|
|
||||||
#: cluster.py:221
|
#: cluster.py:225
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "reincarnated monitor %(name)s after sudden death"
|
msgid "reincarnated monitor %(name)s after sudden death"
|
||||||
msgstr "Monitor %(name)s wurde nach unerwartetem Absturz neu gestartet"
|
msgstr "Monitor %(name)s wurde nach unerwartetem Absturz neu gestartet"
|
||||||
@@ -62,7 +63,15 @@ msgstr "Monitor %(name)s wurde nach unerwartetem Absturz neu gestartet"
|
|||||||
msgid "reincarnated pusher %(name)s after sudden death"
|
msgid "reincarnated pusher %(name)s after sudden death"
|
||||||
msgstr "Pusher %(name)s wurde nach unerwartetem Absturz neu gestartet"
|
msgstr "Pusher %(name)s wurde nach unerwartetem Absturz neu gestartet"
|
||||||
|
|
||||||
#: cluster.py:238
|
#: cluster.py:251
|
||||||
|
#, fuzzy, python-format
|
||||||
|
#| msgid "reincarnated worker %(name)s after timeout"
|
||||||
|
msgid ""
|
||||||
|
"reincarnated worker %(name)s after timeout while processing task "
|
||||||
|
"%(task_name)s"
|
||||||
|
msgstr "Worker %(name)s wurde nach Zeitüberschreitung neu gestartet"
|
||||||
|
|
||||||
|
#: cluster.py:256
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "reincarnated worker %(name)s after timeout"
|
msgid "reincarnated worker %(name)s after timeout"
|
||||||
msgstr "Worker %(name)s wurde nach Zeitüberschreitung neu gestartet"
|
msgstr "Worker %(name)s wurde nach Zeitüberschreitung neu gestartet"
|
||||||
@@ -87,6 +96,7 @@ msgstr "%(name)s beschützt das Cluster %(cluster_name)s"
|
|||||||
msgid "Q Cluster %(cluster_name)s running."
|
msgid "Q Cluster %(cluster_name)s running."
|
||||||
msgstr "Q-Cluster %(cluster_name)s läuft."
|
msgstr "Q-Cluster %(cluster_name)s läuft."
|
||||||
|
|
||||||
|
|
||||||
#: cluster.py:314
|
#: cluster.py:314
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(name)s stopping cluster processes"
|
msgid "%(name)s stopping cluster processes"
|
||||||
@@ -97,63 +107,66 @@ msgstr "%(name)s hält Cluster-Prozesse an"
|
|||||||
msgid "%(name)s waiting for the monitor."
|
msgid "%(name)s waiting for the monitor."
|
||||||
msgstr "%(name)s wartet auf den Monitor."
|
msgstr "%(name)s wartet auf den Monitor."
|
||||||
|
|
||||||
#: cluster.py:362
|
|
||||||
#, python-format
|
#: cluster.py:384
|
||||||
msgid "%(process_name)s pushing tasks at %(id)s"
|
#, fuzzy, python-format
|
||||||
|
#| msgid "%(process_name)s pushing tasks at %(id)s"
|
||||||
|
msgid "%(name)s pushing tasks at %(id)s"
|
||||||
msgstr "%(process_name)s veröffentlicht Aufagaben auf %(id)s"
|
msgstr "%(process_name)s veröffentlicht Aufagaben auf %(id)s"
|
||||||
|
|
||||||
#: cluster.py:386
|
#: cluster.py:408
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "queueing from %(list_key)s"
|
msgid "queueing from %(list_key)s"
|
||||||
msgstr "Einreihen von %(list_key)s"
|
msgstr "Einreihen von %(list_key)s"
|
||||||
|
|
||||||
#: cluster.py:390
|
#: cluster.py:412
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(name)s stopped pushing tasks"
|
msgid "%(name)s stopped pushing tasks"
|
||||||
msgstr "%(name)s veröffentlicht keine Aufgaben mehr"
|
msgstr "%(name)s veröffentlicht keine Aufgaben mehr"
|
||||||
|
|
||||||
#: cluster.py:403
|
#: cluster.py:427
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(name)s monitoring at %(id)s"
|
msgid "%(name)s monitoring at %(id)s"
|
||||||
msgstr "%(name)s beobachtet auf %(id)s"
|
msgstr "%(name)s beobachtet auf %(id)s"
|
||||||
|
|
||||||
#: cluster.py:422
|
#: cluster.py:446
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Processed '%(info_name)s' (%(task_name)s)"
|
msgid "Processed '%(info_name)s' (%(task_name)s)"
|
||||||
msgstr "[%(task_name)s] - '%(info_name)s' wurde verarbeitet"
|
msgstr "[%(task_name)s] - '%(info_name)s' wurde verarbeitet"
|
||||||
|
|
||||||
#: cluster.py:428
|
#: cluster.py:452
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Failed '%(info_name)s' (%(task_name)s) - %(task_result)s"
|
msgid "Failed '%(info_name)s' (%(task_name)s) - %(task_result)s"
|
||||||
msgstr "'%(info_name)s' (%(task_name)s) ist fehlgeschlagen - %(task_result)s"
|
msgstr "'%(info_name)s' (%(task_name)s) ist fehlgeschlagen - %(task_result)s"
|
||||||
|
|
||||||
#: cluster.py:435
|
#: cluster.py:459
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(name)s stopped monitoring results"
|
msgid "%(name)s stopped monitoring results"
|
||||||
msgstr "%(name)s überwacht keine Ergebnisse mehr"
|
msgstr "%(name)s überwacht keine Ergebnisse mehr"
|
||||||
|
|
||||||
#: cluster.py:451
|
#: cluster.py:475
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(proc_name)s ready for work at %(id)s"
|
msgid "%(proc_name)s ready for work at %(id)s"
|
||||||
msgstr "%(proc_name)s ist bereit für Arbeit auf %(id)s"
|
msgstr "%(proc_name)s ist bereit für Arbeit auf %(id)s"
|
||||||
|
|
||||||
#: cluster.py:466
|
#: cluster.py:495
|
||||||
#, python-format
|
#, fuzzy, python-format
|
||||||
msgid "%(proc_name)s processing '%(func_name)s' (%(task_name)s)"
|
#| msgid "%(proc_name)s processing '%(func_name)s' (%(task_name)s)"
|
||||||
|
msgid "%(proc_name)s processing %(task_name)s '%(func_name)s'"
|
||||||
msgstr "%(proc_name)s verarbeitet '%(func_name)s' (%(task_name)s)"
|
msgstr "%(proc_name)s verarbeitet '%(func_name)s' (%(task_name)s)"
|
||||||
|
|
||||||
#: cluster.py:507
|
#: cluster.py:543
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(proc_name)s stopped doing work"
|
msgid "%(proc_name)s stopped doing work"
|
||||||
msgstr "%(proc_name)s hat die Arbeit beendet"
|
msgstr "%(proc_name)s hat die Arbeit beendet"
|
||||||
|
|
||||||
#: cluster.py:712
|
#: cluster.py:756
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(process_name)s failed to create a task from schedule [%(schedule)s]"
|
msgid "%(process_name)s failed to create a task from schedule [%(schedule)s]"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"%(process_name)s konnte keine Aufgabe von Zeitplan [%(schedule)s] erstellen"
|
"%(process_name)s konnte keine Aufgabe von Zeitplan [%(schedule)s] erstellen"
|
||||||
|
|
||||||
#: cluster.py:723
|
#: cluster.py:767
|
||||||
#, fuzzy, python-format
|
#, fuzzy, python-format
|
||||||
#| msgid "%(process_name)s created a task from schedule [%(schedule)s]"
|
#| msgid "%(process_name)s created a task from schedule [%(schedule)s]"
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -161,22 +174,22 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"%(process_name)s hat eine Aufgabe des Zeitplans [%(schedule)s] erstellt"
|
"%(process_name)s hat eine Aufgabe des Zeitplans [%(schedule)s] erstellt"
|
||||||
|
|
||||||
#: cluster.py:769
|
#: cluster.py:813
|
||||||
msgid "Skipping cpu affinity because psutil was not found."
|
msgid "Skipping cpu affinity because psutil was not found."
|
||||||
msgstr "Cpu-Affinität wird übersprungen, da psutil nicht gefunden wurde."
|
msgstr "Cpu-Affinität wird übersprungen, da psutil nicht gefunden wurde."
|
||||||
|
|
||||||
#: cluster.py:774
|
#: cluster.py:818
|
||||||
msgid "Faking cpu affinity because it is not supported on this platform"
|
msgid "Faking cpu affinity because it is not supported on this platform"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Vortäuschen von CPU-Affinität, da diese auf dieser Plattform nicht "
|
"Vortäuschen von CPU-Affinität, da diese auf dieser Plattform nicht "
|
||||||
"unterstützt wird"
|
"unterstützt wird"
|
||||||
|
|
||||||
#: cluster.py:796
|
#: cluster.py:840
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(pid)s will use cpu %(affinity)s"
|
msgid "%(pid)s will use cpu %(affinity)s"
|
||||||
msgstr "%(pid)s wird CPU %(affinity)s benutzen"
|
msgstr "%(pid)s wird CPU %(affinity)s benutzen"
|
||||||
|
|
||||||
#: conf.py:85
|
#: conf.py:93
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"SAVE_LIMIT_PER (%(option)s) is not a valid option. Options are: 'group', "
|
"SAVE_LIMIT_PER (%(option)s) is not a valid option. Options are: 'group', "
|
||||||
@@ -186,23 +199,23 @@ msgstr ""
|
|||||||
"'group', 'name', 'func' und None. Standard ist None."
|
"'group', 'name', 'func' und None. Standard ist None."
|
||||||
|
|
||||||
#. Translators: Cluster status descriptions
|
#. Translators: Cluster status descriptions
|
||||||
#: conf.py:202
|
#: conf.py:210
|
||||||
msgid "Starting"
|
msgid "Starting"
|
||||||
msgstr "Wird gestartet"
|
msgstr "Wird gestartet"
|
||||||
|
|
||||||
#: conf.py:203
|
#: conf.py:211
|
||||||
msgid "Working"
|
msgid "Working"
|
||||||
msgstr "Arbeitet"
|
msgstr "Arbeitet"
|
||||||
|
|
||||||
#: conf.py:204
|
#: conf.py:212
|
||||||
msgid "Idle"
|
msgid "Idle"
|
||||||
msgstr "Leerlauf"
|
msgstr "Leerlauf"
|
||||||
|
|
||||||
#: conf.py:205
|
#: conf.py:213
|
||||||
msgid "Stopped"
|
msgid "Stopped"
|
||||||
msgstr "Gestoppt"
|
msgstr "Gestoppt"
|
||||||
|
|
||||||
#: conf.py:206
|
#: conf.py:214
|
||||||
msgid "Stopping"
|
msgid "Stopping"
|
||||||
msgstr "Wird gestoppt"
|
msgstr "Wird gestoppt"
|
||||||
|
|
||||||
@@ -226,119 +239,116 @@ msgstr "Überwacht die Speichernutzung von Q Cluster"
|
|||||||
msgid "Monitors Q Cluster activity"
|
msgid "Monitors Q Cluster activity"
|
||||||
msgstr "Q-Cluster aktiv überwachen"
|
msgstr "Q-Cluster aktiv überwachen"
|
||||||
|
|
||||||
#: models.py:125
|
|
||||||
|
#: models.py:124
|
||||||
msgid "Successful task"
|
msgid "Successful task"
|
||||||
msgstr "Erfolgreiche Aufgabe"
|
msgstr "Erfolgreiche Aufgabe"
|
||||||
|
|
||||||
#: models.py:126
|
#: models.py:125
|
||||||
msgid "Successful tasks"
|
msgid "Successful tasks"
|
||||||
msgstr "Erfolgreiche Aufgaben"
|
msgstr "Erfolgreiche Aufgaben"
|
||||||
|
|
||||||
#: models.py:141
|
#: models.py:140
|
||||||
msgid "Failed task"
|
msgid "Failed task"
|
||||||
msgstr "Fehlgeschlagene Aufgabe"
|
msgstr "Fehlgeschlagene Aufgabe"
|
||||||
|
|
||||||
#: models.py:142
|
#: models.py:141
|
||||||
msgid "Failed tasks"
|
msgid "Failed tasks"
|
||||||
msgstr "Fehlgeschlagene Aufgaben"
|
msgstr "Fehlgeschlagene Aufgaben"
|
||||||
|
|
||||||
#: models.py:150 models.py:234
|
#: models.py:149 models.py:222
|
||||||
msgid "Please install croniter to enable cron expressions"
|
msgid "Please install croniter to enable cron expressions"
|
||||||
msgstr "Bitte installieren Sie croniter, um Cron-Ausdrücke zu aktivieren"
|
msgstr "Bitte installieren Sie croniter, um Cron-Ausdrücke zu aktivieren"
|
||||||
|
|
||||||
#: models.py:170
|
#: models.py:165
|
||||||
msgid "e.g. 1, 2, 'John'"
|
msgid "e.g. 1, 2, 'John'"
|
||||||
msgstr "zum Beispiel 1, 2, 'John'"
|
msgstr "zum Beispiel 1, 2, 'John'"
|
||||||
|
|
||||||
#: models.py:172
|
#: models.py:167
|
||||||
msgid "e.g. x=1, y=2, name='John'"
|
msgid "e.g. x=1, y=2, name='John'"
|
||||||
msgstr "zum Beispiel x=1, y=2, name='John'"
|
msgstr "zum Beispiel x=1, y=2, name='John'"
|
||||||
|
|
||||||
#: models.py:186
|
#: models.py:181
|
||||||
msgid "Once"
|
msgid "Once"
|
||||||
msgstr "Einmal"
|
msgstr "Einmal"
|
||||||
|
|
||||||
#: models.py:187
|
#: models.py:182
|
||||||
msgid "Minutes"
|
msgid "Minutes"
|
||||||
msgstr "Minuten"
|
msgstr "Minuten"
|
||||||
|
|
||||||
#: models.py:188
|
#: models.py:183
|
||||||
msgid "Hourly"
|
msgid "Hourly"
|
||||||
msgstr "Stündlich"
|
msgstr "Stündlich"
|
||||||
|
|
||||||
#: models.py:189
|
#: models.py:184
|
||||||
msgid "Daily"
|
msgid "Daily"
|
||||||
msgstr "Täglich"
|
msgstr "Täglich"
|
||||||
|
|
||||||
#: models.py:190
|
#: models.py:185
|
||||||
msgid "Weekly"
|
msgid "Weekly"
|
||||||
msgstr "Wöchentlich"
|
msgstr "Wöchentlich"
|
||||||
|
|
||||||
#: models.py:191
|
#: models.py:186
|
||||||
msgid "Biweekly"
|
msgid "Biweekly"
|
||||||
msgstr "Zweiwöchentlich"
|
msgstr "Zweiwöchentlich"
|
||||||
|
|
||||||
#: models.py:192
|
#: models.py:187
|
||||||
msgid "Monthly"
|
msgid "Monthly"
|
||||||
msgstr "Monatlich"
|
msgstr "Monatlich"
|
||||||
|
|
||||||
#: models.py:193
|
#: models.py:188
|
||||||
msgid "Bimonthly"
|
msgid "Bimonthly"
|
||||||
msgstr "Zweimonatlich"
|
msgstr "Zweimonatlich"
|
||||||
|
|
||||||
#: models.py:194
|
#: models.py:189
|
||||||
msgid "Quarterly"
|
msgid "Quarterly"
|
||||||
msgstr "Vierteljährlich"
|
msgstr "Vierteljährlich"
|
||||||
|
|
||||||
#: models.py:195
|
#: models.py:190
|
||||||
msgid "Yearly"
|
msgid "Yearly"
|
||||||
msgstr "Jährlich"
|
msgstr "Jährlich"
|
||||||
|
|
||||||
#: models.py:196
|
#: models.py:191
|
||||||
msgid "Cron"
|
msgid "Cron"
|
||||||
msgstr "Cron"
|
msgstr "Cron"
|
||||||
|
|
||||||
#: models.py:199
|
#: models.py:194
|
||||||
msgid "Schedule Type"
|
msgid "Schedule Type"
|
||||||
msgstr "Zeitplan-Typ"
|
msgstr "Zeitplan-Typ"
|
||||||
|
|
||||||
#: models.py:202
|
#: models.py:197
|
||||||
msgid "Number of minutes for the Minutes type"
|
msgid "Number of minutes for the Minutes type"
|
||||||
msgstr "Anzahl Minuten für den Typ 'Minuten'"
|
msgstr "Anzahl Minuten für den Typ 'Minuten'"
|
||||||
|
|
||||||
#: models.py:205
|
#: models.py:200
|
||||||
msgid "Repeats"
|
msgid "Repeats"
|
||||||
msgstr "Wiederhohlungen"
|
msgstr "Wiederhohlungen"
|
||||||
|
|
||||||
#: models.py:205
|
#: models.py:200
|
||||||
msgid "n = n times, -1 = forever"
|
msgid "n = n times, -1 = forever"
|
||||||
msgstr "n = n mal, -1 = für immer"
|
msgstr "n = n mal, -1 = für immer"
|
||||||
|
|
||||||
#: models.py:208
|
#: models.py:203
|
||||||
msgid "Next Run"
|
msgid "Next Run"
|
||||||
msgstr "Nächste Ausführung"
|
msgstr "Nächste Ausführung"
|
||||||
|
|
||||||
#: models.py:215
|
#: models.py:210
|
||||||
msgid "Cron expression"
|
msgid "Cron expression"
|
||||||
msgstr "Cron-Ausdruck"
|
msgstr "Cron-Ausdruck"
|
||||||
|
|
||||||
#: models.py:224
|
#: models.py:287
|
||||||
msgid "Name of kwarg to pass intended schedule date"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: models.py:299
|
|
||||||
msgid "Scheduled task"
|
msgid "Scheduled task"
|
||||||
msgstr "Geplante Aufgabe"
|
msgstr "Geplante Aufgabe"
|
||||||
|
|
||||||
#: models.py:300
|
#: models.py:288
|
||||||
msgid "Scheduled tasks"
|
msgid "Scheduled tasks"
|
||||||
msgstr "Geplante Aufgaben"
|
msgstr "Geplante Aufgaben"
|
||||||
|
|
||||||
#: models.py:326
|
#: models.py:314
|
||||||
msgid "Queued task"
|
msgid "Queued task"
|
||||||
msgstr "Eingereihte Aufgabe"
|
msgstr "Eingereihte Aufgabe"
|
||||||
|
|
||||||
#: models.py:327
|
#: models.py:315
|
||||||
msgid "Queued tasks"
|
msgid "Queued tasks"
|
||||||
msgstr "Eingereihte Aufgaben"
|
msgstr "Eingereihte Aufgaben"
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-01-15 23:35+0100\n"
|
"POT-Creation-Date: 2023-01-07 19:21+0100\n"
|
||||||
"PO-Revision-Date: 2018-08-05 18:28+0200\n"
|
"PO-Revision-Date: 2018-08-05 18:28+0200\n"
|
||||||
"Last-Translator: Thierry BOULOGNE <contact@tng-concepts.com>\n"
|
"Last-Translator: Thierry BOULOGNE <contact@tng-concepts.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@@ -21,160 +21,172 @@ msgstr ""
|
|||||||
msgid "Resubmit selected tasks to queue"
|
msgid "Resubmit selected tasks to queue"
|
||||||
msgstr "Resoumettre les tâches sélectionnées à la file d'attente"
|
msgstr "Resoumettre les tâches sélectionnées à la file d'attente"
|
||||||
|
|
||||||
#: admin.py:107 models.py:293
|
#: admin.py:107 models.py:281
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Success"
|
#| msgid "Success"
|
||||||
msgid "success"
|
msgid "success"
|
||||||
msgstr "succès"
|
msgstr "succès"
|
||||||
|
|
||||||
#: admin.py:119 models.py:295
|
#: admin.py:119 models.py:283
|
||||||
msgid "last_run"
|
msgid "last_run"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cluster.py:76
|
#: cluster.py:80
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Q Cluster %(name)s starting."
|
msgid "Q Cluster %(name)s starting."
|
||||||
msgstr "Démarrage de Q Cluster-%(name)s."
|
msgstr "Démarrage de Q Cluster-%(name)s."
|
||||||
|
|
||||||
#: cluster.py:84
|
#: cluster.py:88
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Q Cluster %(name)s stopping."
|
msgid "Q Cluster %(name)s stopping."
|
||||||
msgstr "Arrêt de Q Cluster-%(name)s."
|
msgstr "Arrêt de Q Cluster-%(name)s."
|
||||||
|
|
||||||
#: cluster.py:87
|
#: cluster.py:91
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Q Cluster %(name)s has stopped."
|
msgid "Q Cluster %(name)s has stopped."
|
||||||
msgstr "Q Cluster-%(name)s a été arrêté."
|
msgstr "Q Cluster-%(name)s a été arrêté."
|
||||||
|
|
||||||
#: cluster.py:94
|
#: cluster.py:98
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(name)s got signal %(signal)s"
|
msgid "%(name)s got signal %(signal)s"
|
||||||
msgstr "%(name)s à reçu le signal %(signal)s"
|
msgstr "%(name)s à reçu le signal %(signal)s"
|
||||||
|
|
||||||
#: cluster.py:221
|
#: cluster.py:225
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "reincarnated monitor %(name)s after sudden death"
|
msgid "reincarnated monitor %(name)s after sudden death"
|
||||||
msgstr "moniteur réintégré %(name)s après un arrêt intempestif"
|
msgstr "surveillant %(name)s réincarné après un arrêt intempestif"
|
||||||
|
|
||||||
#: cluster.py:227
|
|
||||||
|
#: cluster.py:231
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "reincarnated pusher %(name)s after sudden death"
|
msgid "reincarnated pusher %(name)s after sudden death"
|
||||||
msgstr "pousseur réintégré %(name)s après un arrêt intempestif"
|
msgstr "répartiteur %(name)s réincarné après un arrêt intempestif"
|
||||||
|
|
||||||
#: cluster.py:238
|
#: cluster.py:251
|
||||||
|
#, python-format
|
||||||
|
msgid ""
|
||||||
|
"reincarnated worker %(name)s after timeout while processing task "
|
||||||
|
"%(task_name)s"
|
||||||
|
msgstr ""
|
||||||
|
"processus %(name)s réincarné, délai de traitement dépassé pour la tâche "
|
||||||
|
"%(task_name)s"
|
||||||
|
|
||||||
|
#: cluster.py:256
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "reincarnated worker %(name)s after timeout"
|
msgid "reincarnated worker %(name)s after timeout"
|
||||||
msgstr "processus réintégré %(name)s après un arrêt une attente trop longue"
|
msgstr "processus %(name)s réincarné, délai de traitement dépassé"
|
||||||
|
|
||||||
#: cluster.py:242
|
#: cluster.py:261
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "recycled worker %(name)s"
|
msgid "recycled worker %(name)s"
|
||||||
msgstr "processus recyclé %(name)s"
|
msgstr "processus recyclé %(name)s"
|
||||||
|
|
||||||
#: cluster.py:245
|
#: cluster.py:264
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "reincarnated worker %(name)s after death"
|
msgid "reincarnated worker %(name)s after death"
|
||||||
msgstr "processus réintégré %(name)s après arrêt"
|
msgstr "processus réintégré %(name)s après arrêt"
|
||||||
|
|
||||||
#: cluster.py:269
|
#: cluster.py:288
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(name)s guarding cluster %(cluster_name)s"
|
msgid "%(name)s guarding cluster %(cluster_name)s"
|
||||||
msgstr "%(name)s surveillance du cluster à %(cluster_name)s"
|
msgstr "%(name)s surveillance du cluster à %(cluster_name)s"
|
||||||
|
|
||||||
#: cluster.py:278
|
#: cluster.py:297
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Q Cluster %(cluster_name)s running."
|
msgid "Q Cluster %(cluster_name)s running."
|
||||||
msgstr "Démarrage de Q Cluster-%(cluster_name)s."
|
msgstr "Démarrage de Q Cluster-%(cluster_name)s."
|
||||||
|
|
||||||
#: cluster.py:314
|
#: cluster.py:333
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(name)s stopping cluster processes"
|
msgid "%(name)s stopping cluster processes"
|
||||||
msgstr "%(name)s arrêt des processus de cluster"
|
msgstr "%(name)s arrêt des processus du cluster"
|
||||||
|
|
||||||
#: cluster.py:339
|
#: cluster.py:358
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(name)s waiting for the monitor."
|
msgid "%(name)s waiting for the monitor."
|
||||||
msgstr "%(name)s en attente du moniteur."
|
msgstr "%(name)s en attente du surveillant."
|
||||||
|
|
||||||
#: cluster.py:362
|
#: cluster.py:384
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(process_name)s pushing tasks at %(id)s"
|
msgid "%(name)s pushing tasks at %(id)s"
|
||||||
msgstr "%(process_name)s tâche envoyé à %(id)s"
|
msgstr "%(name)s répartit les tâches %(id)s"
|
||||||
|
|
||||||
#: cluster.py:386
|
#: cluster.py:408
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "queueing from %(list_key)s"
|
msgid "queueing from %(list_key)s"
|
||||||
msgstr "mise en file d'attente de %(list_key)s"
|
msgstr "mise en file d'attente de %(list_key)s"
|
||||||
|
|
||||||
#: cluster.py:390
|
#: cluster.py:412
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(name)s stopped pushing tasks"
|
msgid "%(name)s stopped pushing tasks"
|
||||||
msgstr "%(name)s a cessé de pousser les tâches"
|
msgstr "%(name)s a cessé de répartir les tâches"
|
||||||
|
|
||||||
#: cluster.py:403
|
#: cluster.py:427
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(name)s monitoring at %(id)s"
|
msgid "%(name)s monitoring at %(id)s"
|
||||||
msgstr "%(name)s Surveillance de %(id)s"
|
msgstr "%(name)s surveille les résultats %(id)s"
|
||||||
|
|
||||||
#: cluster.py:422
|
#: cluster.py:446
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Processed '%(info_name)s' (%(task_name)s)"
|
msgid "Processed '%(info_name)s' (%(task_name)s)"
|
||||||
msgstr "traité '%(info_name)s' (%(task_name)s)"
|
msgstr "traité '%(info_name)s' (%(task_name)s)"
|
||||||
|
|
||||||
#: cluster.py:428
|
#: cluster.py:452
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Failed '%(info_name)s' (%(task_name)s) - %(task_result)s"
|
msgid "Failed '%(info_name)s' (%(task_name)s) - %(task_result)s"
|
||||||
msgstr "Manqué '%(info_name)s' (%(task_name)s) - %(task_result)s"
|
msgstr "Manqué '%(info_name)s' (%(task_name)s) - %(task_result)s"
|
||||||
|
|
||||||
#: cluster.py:435
|
#: cluster.py:459
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(name)s stopped monitoring results"
|
msgid "%(name)s stopped monitoring results"
|
||||||
msgstr "%(name)s arrêt des résultats de surveillance"
|
msgstr "%(name)s a cessé de de surveiller les résultats"
|
||||||
|
|
||||||
#: cluster.py:451
|
#: cluster.py:475
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(proc_name)s ready for work at %(id)s"
|
msgid "%(proc_name)s ready for work at %(id)s"
|
||||||
msgstr "%(proc_name)s prêt pour le travail à %(id)s"
|
msgstr "%(proc_name)s prêt pour le travail à %(id)s"
|
||||||
|
|
||||||
#: cluster.py:466
|
#: cluster.py:495
|
||||||
#, python-format
|
#, fuzzy, python-format
|
||||||
msgid "%(proc_name)s processing '%(func_name)s' (%(task_name)s)"
|
msgid "%(proc_name)s processing %(task_name)s '%(func_name)s'"
|
||||||
msgstr "%(proc_name)s en traitement '%(func_name)s' (%(task_name)s)"
|
msgstr "%(proc_name)s exécute %(task_name)s '%(func_name)s'"
|
||||||
|
|
||||||
#: cluster.py:507
|
#: cluster.py:543
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(proc_name)s stopped doing work"
|
msgid "%(proc_name)s stopped doing work"
|
||||||
msgstr "%(proc_name)s arrêté de travailler"
|
msgstr "%(proc_name)s a cessé de travailler"
|
||||||
|
|
||||||
#: cluster.py:712
|
#: cluster.py:756
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(process_name)s failed to create a task from schedule [%(schedule)s]"
|
msgid "%(process_name)s failed to create a task from schedule [%(schedule)s]"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"%(process_name)s Echec de la création d'une tâche à partir de Schedule "
|
"%(process_name)s Echec de la création d'une tâche à partir de Schedule "
|
||||||
"[%(schedule)s]"
|
"[%(schedule)s]"
|
||||||
|
|
||||||
#: cluster.py:723
|
#: cluster.py:767
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"%(process_name)s created task %(task_name)s from schedule [%(schedule)s]"
|
"%(process_name)s created task %(task_name)s from schedule [%(schedule)s]"
|
||||||
msgstr "%(process_name)s a créé la tâche %(task_name)s à partir de Schedule [%(schedule)s]"
|
msgstr ""
|
||||||
|
"%(process_name)s a créé la tâche %(task_name)s à partir de Schedule "
|
||||||
|
"[%(schedule)s]"
|
||||||
|
|
||||||
#: cluster.py:769
|
#: cluster.py:813
|
||||||
msgid "Skipping cpu affinity because psutil was not found."
|
msgid "Skipping cpu affinity because psutil was not found."
|
||||||
msgstr "Sauter l'affinité du processeur parce que psutil n'a pas été trouvé."
|
msgstr "L'affinité cpu ne sera pas définie car psutil n'a pas été trouvé."
|
||||||
|
|
||||||
#: cluster.py:774
|
#: cluster.py:818
|
||||||
msgid "Faking cpu affinity because it is not supported on this platform"
|
msgid "Faking cpu affinity because it is not supported on this platform"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Simulation de l'affinité du processeur parce qu'elle n'est pas supportée sur "
|
"Simulation de l'affinité cpu parce qu'elle n'est pas supportée sur cette "
|
||||||
"cette plateforme."
|
"plateforme."
|
||||||
|
|
||||||
#: cluster.py:796
|
#: cluster.py:840
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(pid)s will use cpu %(affinity)s"
|
msgid "%(pid)s will use cpu %(affinity)s"
|
||||||
msgstr "%(pid)s utilisera le CPU %(affinity)s"
|
msgstr "%(pid)s utilisera le CPU %(affinity)s"
|
||||||
|
|
||||||
#: conf.py:85
|
#: conf.py:93
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"SAVE_LIMIT_PER (%(option)s) is not a valid option. Options are: 'group', "
|
"SAVE_LIMIT_PER (%(option)s) is not a valid option. Options are: 'group', "
|
||||||
@@ -184,23 +196,23 @@ msgstr ""
|
|||||||
"'group', 'name', 'func' et None. La valeur par défaut est None."
|
"'group', 'name', 'func' et None. La valeur par défaut est None."
|
||||||
|
|
||||||
#. Translators: Cluster status descriptions
|
#. Translators: Cluster status descriptions
|
||||||
#: conf.py:202
|
#: conf.py:210
|
||||||
msgid "Starting"
|
msgid "Starting"
|
||||||
msgstr "Démarrage"
|
msgstr "Démarrage"
|
||||||
|
|
||||||
#: conf.py:203
|
#: conf.py:211
|
||||||
msgid "Working"
|
msgid "Working"
|
||||||
msgstr "Actif"
|
msgstr "Actif"
|
||||||
|
|
||||||
#: conf.py:204
|
#: conf.py:212
|
||||||
msgid "Idle"
|
msgid "Idle"
|
||||||
msgstr "En attente"
|
msgstr "En attente"
|
||||||
|
|
||||||
#: conf.py:205
|
#: conf.py:213
|
||||||
msgid "Stopped"
|
msgid "Stopped"
|
||||||
msgstr "Arrêté"
|
msgstr "Arrêté"
|
||||||
|
|
||||||
#: conf.py:206
|
#: conf.py:214
|
||||||
msgid "Stopping"
|
msgid "Stopping"
|
||||||
msgstr "En cours d’arrêt"
|
msgstr "En cours d’arrêt"
|
||||||
|
|
||||||
@@ -219,130 +231,126 @@ msgstr "Informations générales sur tous les clusters."
|
|||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Monitors Q Cluster activity"
|
#| msgid "Monitors Q Cluster activity"
|
||||||
msgid "Monitors Q Cluster memory usage"
|
msgid "Monitors Q Cluster memory usage"
|
||||||
msgstr "Surveille l'utilisation de la mémoire du cluster Q"
|
msgstr "Surveille l'utilisation mémoire du Q cluster"
|
||||||
|
|
||||||
#. Translators: help text for qmonitor management command
|
#. Translators: help text for qmonitor management command
|
||||||
#: management/commands/qmonitor.py:9
|
#: management/commands/qmonitor.py:9
|
||||||
msgid "Monitors Q Cluster activity"
|
msgid "Monitors Q Cluster activity"
|
||||||
msgstr "Activité du cluster Moniteur Q"
|
msgstr "Surveille l'activité de Q cluster"
|
||||||
|
|
||||||
#: models.py:125
|
#: models.py:124
|
||||||
msgid "Successful task"
|
msgid "Successful task"
|
||||||
msgstr "Tâche réussie"
|
msgstr "Tâche réussie"
|
||||||
|
|
||||||
#: models.py:126
|
#: models.py:125
|
||||||
msgid "Successful tasks"
|
msgid "Successful tasks"
|
||||||
msgstr "Tâches réussies"
|
msgstr "Tâches réussies"
|
||||||
|
|
||||||
#: models.py:141
|
#: models.py:140
|
||||||
msgid "Failed task"
|
msgid "Failed task"
|
||||||
msgstr "Tâche échoué"
|
msgstr "Tâche échoué"
|
||||||
|
|
||||||
#: models.py:142
|
#: models.py:141
|
||||||
msgid "Failed tasks"
|
msgid "Failed tasks"
|
||||||
msgstr "Tâches échouées"
|
msgstr "Tâches échouées"
|
||||||
|
|
||||||
#: models.py:150 models.py:234
|
#: models.py:149 models.py:222
|
||||||
msgid "Please install croniter to enable cron expressions"
|
msgid "Please install croniter to enable cron expressions"
|
||||||
msgstr "Veuillez installer croniter pour activer les expressions croniques."
|
msgstr "Veuillez installer croniter pour activer les expressions cron."
|
||||||
|
|
||||||
#: models.py:170
|
#: models.py:165
|
||||||
msgid "e.g. 1, 2, 'John'"
|
msgid "e.g. 1, 2, 'John'"
|
||||||
msgstr "ex. 1, 2, ‘Jean’"
|
msgstr "ex. 1, 2, ‘Jean’"
|
||||||
|
|
||||||
#: models.py:172
|
#: models.py:167
|
||||||
msgid "e.g. x=1, y=2, name='John'"
|
msgid "e.g. x=1, y=2, name='John'"
|
||||||
msgstr "p. ex. x = 1, y = 2, Nom = ‘Jean’"
|
msgstr "p. ex. x = 1, y = 2, Nom = ‘Jean’"
|
||||||
|
|
||||||
#: models.py:186
|
#: models.py:181
|
||||||
msgid "Once"
|
msgid "Once"
|
||||||
msgstr "Une fois"
|
msgstr "Une fois"
|
||||||
|
|
||||||
#: models.py:187
|
#: models.py:182
|
||||||
msgid "Minutes"
|
msgid "Minutes"
|
||||||
msgstr "Minutes"
|
msgstr "Minutes"
|
||||||
|
|
||||||
#: models.py:188
|
#: models.py:183
|
||||||
msgid "Hourly"
|
msgid "Hourly"
|
||||||
msgstr "Toutes les heures"
|
msgstr "Toutes les heures"
|
||||||
|
|
||||||
#: models.py:189
|
#: models.py:184
|
||||||
msgid "Daily"
|
msgid "Daily"
|
||||||
msgstr "Quotidien"
|
msgstr "Quotidien"
|
||||||
|
|
||||||
#: models.py:190
|
#: models.py:185
|
||||||
msgid "Weekly"
|
msgid "Weekly"
|
||||||
msgstr "Hebdomadaire"
|
msgstr "Hebdomadaire"
|
||||||
|
|
||||||
#: models.py:191
|
#: models.py:186
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Weekly"
|
#| msgid "Weekly"
|
||||||
msgid "Biweekly"
|
msgid "Biweekly"
|
||||||
msgstr "Bihebdomadaire"
|
msgstr "Bihebdomadaire"
|
||||||
|
|
||||||
#: models.py:192
|
#: models.py:187
|
||||||
msgid "Monthly"
|
msgid "Monthly"
|
||||||
msgstr "Mensuel"
|
msgstr "Mensuel"
|
||||||
|
|
||||||
#: models.py:193
|
#: models.py:188
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Monthly"
|
#| msgid "Monthly"
|
||||||
msgid "Bimonthly"
|
msgid "Bimonthly"
|
||||||
msgstr "Bimestriel"
|
msgstr "Bimestriel"
|
||||||
|
|
||||||
#: models.py:194
|
#: models.py:189
|
||||||
msgid "Quarterly"
|
msgid "Quarterly"
|
||||||
msgstr "Tous les quart-d’heure"
|
msgstr "Tous les quart-d’heure"
|
||||||
|
|
||||||
#: models.py:195
|
#: models.py:190
|
||||||
msgid "Yearly"
|
msgid "Yearly"
|
||||||
msgstr "Annuel"
|
msgstr "Annuel"
|
||||||
|
|
||||||
#: models.py:196
|
#: models.py:191
|
||||||
msgid "Cron"
|
msgid "Cron"
|
||||||
msgstr "Cron"
|
msgstr "Cron"
|
||||||
|
|
||||||
#: models.py:199
|
#: models.py:194
|
||||||
msgid "Schedule Type"
|
msgid "Schedule Type"
|
||||||
msgstr "Type de plannification"
|
msgstr "Type de plannification"
|
||||||
|
|
||||||
#: models.py:202
|
#: models.py:197
|
||||||
msgid "Number of minutes for the Minutes type"
|
msgid "Number of minutes for the Minutes type"
|
||||||
msgstr "Nombre de minutes pour le type de minutes"
|
msgstr "Nombre de minutes pour le type de minutes"
|
||||||
|
|
||||||
#: models.py:205
|
#: models.py:200
|
||||||
msgid "Repeats"
|
msgid "Repeats"
|
||||||
msgstr "Répéter"
|
msgstr "Répéter"
|
||||||
|
|
||||||
#: models.py:205
|
#: models.py:200
|
||||||
msgid "n = n times, -1 = forever"
|
msgid "n = n times, -1 = forever"
|
||||||
msgstr "n = n fois,-1 = Toujours"
|
msgstr "n = n fois,-1 = Toujours"
|
||||||
|
|
||||||
#: models.py:208
|
#: models.py:203
|
||||||
msgid "Next Run"
|
msgid "Next Run"
|
||||||
msgstr "Prochaine exécution"
|
msgstr "Prochaine exécution"
|
||||||
|
|
||||||
#: models.py:215
|
#: models.py:210
|
||||||
msgid "Cron expression"
|
msgid "Cron expression"
|
||||||
msgstr "Expression du Cron"
|
msgstr "Expression Cron"
|
||||||
|
|
||||||
#: models.py:224
|
#: models.py:287
|
||||||
msgid "Name of kwarg to pass intended schedule date"
|
|
||||||
msgstr "Nom du kwarg pour passer la date d'éxecution prévue"
|
|
||||||
|
|
||||||
#: models.py:299
|
|
||||||
msgid "Scheduled task"
|
msgid "Scheduled task"
|
||||||
msgstr "Tâche planifiée"
|
msgstr "Tâche planifiée"
|
||||||
|
|
||||||
#: models.py:300
|
#: models.py:288
|
||||||
msgid "Scheduled tasks"
|
msgid "Scheduled tasks"
|
||||||
msgstr "Tâches planifiées"
|
msgstr "Tâches planifiées"
|
||||||
|
|
||||||
#: models.py:326
|
#: models.py:314
|
||||||
msgid "Queued task"
|
msgid "Queued task"
|
||||||
msgstr "Tâche en file d'attente"
|
msgstr "Tâche en file d'attente"
|
||||||
|
|
||||||
#: models.py:327
|
#: models.py:315
|
||||||
msgid "Queued tasks"
|
msgid "Queued tasks"
|
||||||
msgstr "Tâches en file d'attente"
|
msgstr "Tâches en file d'attente"
|
||||||
|
|
||||||
@@ -482,13 +490,12 @@ msgstr "Aucun cluster ne semble être en cours d'exécution."
|
|||||||
#: signals.py:22
|
#: signals.py:22
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "malformed return hook '%(hook)s' for [%(name)s]"
|
msgid "malformed return hook '%(hook)s' for [%(name)s]"
|
||||||
msgstr "hook de retour mal formé' %(hook)s 'pour [%(name)s]"
|
msgstr "hook de retour '%(hook)s' mal formé pour [%(name)s]"
|
||||||
|
|
||||||
#: signals.py:30
|
#: signals.py:30
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "return hook %(hook)s failed on [%(name)s] because %(error)s"
|
msgid "return hook %(hook)s failed on [%(name)s] because %(error)s"
|
||||||
msgstr ""
|
msgstr "hook de retour %(hook)s a échoué sur [%(name)s] à cause de %(error)s"
|
||||||
"le crochet de retour %(hook)s a échoué sur [%(name)s] parce que %(error)s"
|
|
||||||
|
|
||||||
#, python-format
|
#, python-format
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-01-15 23:35+0100\n"
|
"POT-Creation-Date: 2023-01-07 19:21+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: Ethem Güner <ethemguener@gmail.com>\n"
|
"Last-Translator: Ethem Güner <ethemguener@gmail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@@ -22,157 +22,167 @@ msgstr ""
|
|||||||
msgid "Resubmit selected tasks to queue"
|
msgid "Resubmit selected tasks to queue"
|
||||||
msgstr "Seçili işleri kuyruğa tekrar gönder"
|
msgstr "Seçili işleri kuyruğa tekrar gönder"
|
||||||
|
|
||||||
#: admin.py:107 models.py:293
|
#: admin.py:107 models.py:281
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Success"
|
#| msgid "Success"
|
||||||
msgid "success"
|
msgid "success"
|
||||||
msgstr "başarılı olanlar"
|
msgstr "başarılı olanlar"
|
||||||
|
|
||||||
#: admin.py:119 models.py:295
|
#: admin.py:119 models.py:283
|
||||||
msgid "last_run"
|
msgid "last_run"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cluster.py:76
|
#: cluster.py:80
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Q Cluster %(name)s starting."
|
msgid "Q Cluster %(name)s starting."
|
||||||
msgstr "Q Cluster %(name)s başlatılıyor."
|
msgstr "Q Cluster %(name)s başlatılıyor."
|
||||||
|
|
||||||
#: cluster.py:84
|
#: cluster.py:88
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Q Cluster %(name)s stopping."
|
msgid "Q Cluster %(name)s stopping."
|
||||||
msgstr "Q Cluster %(name)s durduruluyor."
|
msgstr "Q Cluster %(name)s durduruluyor."
|
||||||
|
|
||||||
#: cluster.py:87
|
#: cluster.py:91
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Q Cluster %(name)s has stopped."
|
msgid "Q Cluster %(name)s has stopped."
|
||||||
msgstr "Q Cluster %(name)s durduruldu."
|
msgstr "Q Cluster %(name)s durduruldu."
|
||||||
|
|
||||||
#: cluster.py:94
|
#: cluster.py:98
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(name)s got signal %(signal)s"
|
msgid "%(name)s got signal %(signal)s"
|
||||||
msgstr "%(name)s, %(signal)s pid'inde izleniyor/monitoring yapılıyor."
|
msgstr "%(name)s, %(signal)s pid'inde izleniyor/monitoring yapılıyor."
|
||||||
|
|
||||||
#: cluster.py:221
|
#: cluster.py:225
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "reincarnated monitor %(name)s after sudden death"
|
msgid "reincarnated monitor %(name)s after sudden death"
|
||||||
msgstr "Monitor %(name)s ani ölüm sonrası tekrar dirildi"
|
msgstr "Monitor %(name)s ani ölüm sonrası tekrar dirildi"
|
||||||
|
|
||||||
#: cluster.py:227
|
#: cluster.py:231
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "reincarnated pusher %(name)s after sudden death"
|
msgid "reincarnated pusher %(name)s after sudden death"
|
||||||
msgstr "Pusher %(name)s ani ölüm sonrası tekrar dirildi"
|
msgstr "Pusher %(name)s ani ölüm sonrası tekrar dirildi"
|
||||||
|
|
||||||
#: cluster.py:238
|
#: cluster.py:251
|
||||||
|
#, fuzzy, python-format
|
||||||
|
#| msgid "reincarnated worker %(name)s after timeout"
|
||||||
|
msgid ""
|
||||||
|
"reincarnated worker %(name)s after timeout while processing task "
|
||||||
|
"%(task_name)s"
|
||||||
|
msgstr "Worker %(name)s zaman aşımı sonrası tekrar dirildi"
|
||||||
|
|
||||||
|
#: cluster.py:256
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "reincarnated worker %(name)s after timeout"
|
msgid "reincarnated worker %(name)s after timeout"
|
||||||
msgstr "Worker %(name)s zaman aşımı sonrası tekrar dirildi"
|
msgstr "Worker %(name)s zaman aşımı sonrası tekrar dirildi"
|
||||||
|
|
||||||
#: cluster.py:242
|
#: cluster.py:261
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "recycled worker %(name)s"
|
msgid "recycled worker %(name)s"
|
||||||
msgstr "Worker %(name)s geri döndürüldü"
|
msgstr "Worker %(name)s geri döndürüldü"
|
||||||
|
|
||||||
#: cluster.py:245
|
#: cluster.py:264
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "reincarnated worker %(name)s after death"
|
msgid "reincarnated worker %(name)s after death"
|
||||||
msgstr "Worker %(name)s ani ölüm sonrası tekrar dirildi"
|
msgstr "Worker %(name)s ani ölüm sonrası tekrar dirildi"
|
||||||
|
|
||||||
#: cluster.py:269
|
#: cluster.py:288
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(name)s guarding cluster %(cluster_name)s"
|
msgid "%(name)s guarding cluster %(cluster_name)s"
|
||||||
msgstr "%(name)s, %(cluster_name)s cluster'ını koruyor"
|
msgstr "%(name)s, %(cluster_name)s cluster'ını koruyor"
|
||||||
|
|
||||||
#: cluster.py:278
|
#: cluster.py:297
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Q Cluster %(cluster_name)s running."
|
msgid "Q Cluster %(cluster_name)s running."
|
||||||
msgstr "Q Cluster %(cluster_name)s başlatılıyor."
|
msgstr "Q Cluster %(cluster_name)s başlatılıyor."
|
||||||
|
|
||||||
#: cluster.py:314
|
#: cluster.py:333
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(name)s stopping cluster processes"
|
msgid "%(name)s stopping cluster processes"
|
||||||
msgstr "Cluster %(name)s işlemleri durduruluyor."
|
msgstr "Cluster %(name)s işlemleri durduruluyor."
|
||||||
|
|
||||||
#: cluster.py:339
|
#: cluster.py:358
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(name)s waiting for the monitor."
|
msgid "%(name)s waiting for the monitor."
|
||||||
msgstr "%(name)s monitor için bekliyor."
|
msgstr "%(name)s monitor için bekliyor."
|
||||||
|
|
||||||
#: cluster.py:362
|
#: cluster.py:384
|
||||||
#, python-format
|
#, fuzzy, python-format
|
||||||
msgid "%(process_name)s pushing tasks at %(id)s"
|
#| msgid "%(process_name)s pushing tasks at %(id)s"
|
||||||
|
msgid "%(name)s pushing tasks at %(id)s"
|
||||||
msgstr "%(process_name)s, işleri %(id)s pid'ine gönderiyor."
|
msgstr "%(process_name)s, işleri %(id)s pid'ine gönderiyor."
|
||||||
|
|
||||||
#: cluster.py:386
|
#: cluster.py:408
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "queueing from %(list_key)s"
|
msgid "queueing from %(list_key)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cluster.py:390
|
#: cluster.py:412
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(name)s stopped pushing tasks"
|
msgid "%(name)s stopped pushing tasks"
|
||||||
msgstr "%(name)s işleri göndermeyi durdurdu"
|
msgstr "%(name)s işleri göndermeyi durdurdu"
|
||||||
|
|
||||||
#: cluster.py:403
|
#: cluster.py:427
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(name)s monitoring at %(id)s"
|
msgid "%(name)s monitoring at %(id)s"
|
||||||
msgstr "%(name)s, %(id)s pid'inde izleniyor/monitoring yapılıyor."
|
msgstr "%(name)s, %(id)s pid'inde izleniyor/monitoring yapılıyor."
|
||||||
|
|
||||||
#: cluster.py:422
|
#: cluster.py:446
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Processed '%(info_name)s' (%(task_name)s)"
|
msgid "Processed '%(info_name)s' (%(task_name)s)"
|
||||||
msgstr "[%(task_name)s] - '%(info_name)s işlendi."
|
msgstr "[%(task_name)s] - '%(info_name)s işlendi."
|
||||||
|
|
||||||
#: cluster.py:428
|
#: cluster.py:452
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Failed '%(info_name)s' (%(task_name)s) - %(task_result)s"
|
msgid "Failed '%(info_name)s' (%(task_name)s) - %(task_result)s"
|
||||||
msgstr "[%(task_name)s] - '%(info_name)s' - %(task_result)s başarısız oldu"
|
msgstr "[%(task_name)s] - '%(info_name)s' - %(task_result)s başarısız oldu"
|
||||||
|
|
||||||
#: cluster.py:435
|
#: cluster.py:459
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(name)s stopped monitoring results"
|
msgid "%(name)s stopped monitoring results"
|
||||||
msgstr "%(name)s sonuçları göstermeyi bıraktı"
|
msgstr "%(name)s sonuçları göstermeyi bıraktı"
|
||||||
|
|
||||||
#: cluster.py:451
|
#: cluster.py:475
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(proc_name)s ready for work at %(id)s"
|
msgid "%(proc_name)s ready for work at %(id)s"
|
||||||
msgstr "%(proc_name)s, %(id)s pid'inde çalışmaya hazır"
|
msgstr "%(proc_name)s, %(id)s pid'inde çalışmaya hazır"
|
||||||
|
|
||||||
#: cluster.py:466
|
#: cluster.py:495
|
||||||
#, python-format
|
#, fuzzy, python-format
|
||||||
msgid "%(proc_name)s processing '%(func_name)s' (%(task_name)s)"
|
#| msgid "%(proc_name)s processing '%(func_name)s' (%(task_name)s)"
|
||||||
|
msgid "%(proc_name)s processing %(task_name)s '%(func_name)s'"
|
||||||
msgstr "%(proc_name)s, '%(func_name)s' [%(task_name)s] işlerini işiyor"
|
msgstr "%(proc_name)s, '%(func_name)s' [%(task_name)s] işlerini işiyor"
|
||||||
|
|
||||||
#: cluster.py:507
|
#: cluster.py:543
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(proc_name)s stopped doing work"
|
msgid "%(proc_name)s stopped doing work"
|
||||||
msgstr "%(proc_name)s çalışmayı bıraktı"
|
msgstr "%(proc_name)s çalışmayı bıraktı"
|
||||||
|
|
||||||
#: cluster.py:712
|
#: cluster.py:756
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(process_name)s failed to create a task from schedule [%(schedule)s]"
|
msgid "%(process_name)s failed to create a task from schedule [%(schedule)s]"
|
||||||
msgstr "%(process_name)s programdan bir görev oluşturamadı [%(schedule)s]"
|
msgstr "%(process_name)s programdan bir görev oluşturamadı [%(schedule)s]"
|
||||||
|
|
||||||
#: cluster.py:723
|
#: cluster.py:767
|
||||||
#, fuzzy, python-format
|
#, fuzzy, python-format
|
||||||
#| msgid "%(process_name)s created a task from schedule [%(schedule)s]"
|
#| msgid "%(process_name)s created a task from schedule [%(schedule)s]"
|
||||||
msgid ""
|
msgid ""
|
||||||
"%(process_name)s created task %(task_name)s from schedule [%(schedule)s]"
|
"%(process_name)s created task %(task_name)s from schedule [%(schedule)s]"
|
||||||
msgstr "%(process_name)s programdan bir görev oluşturamadı [%(schedule)s]"
|
msgstr "%(process_name)s programdan bir görev oluşturamadı [%(schedule)s]"
|
||||||
|
|
||||||
#: cluster.py:769
|
#: cluster.py:813
|
||||||
msgid "Skipping cpu affinity because psutil was not found."
|
msgid "Skipping cpu affinity because psutil was not found."
|
||||||
msgstr "Psutil bulunamadığı için cpu benzeşimi atlanıyor."
|
msgstr "Psutil bulunamadığı için cpu benzeşimi atlanıyor."
|
||||||
|
|
||||||
#: cluster.py:774
|
#: cluster.py:818
|
||||||
msgid "Faking cpu affinity because it is not supported on this platform"
|
msgid "Faking cpu affinity because it is not supported on this platform"
|
||||||
msgstr "Bu platformda desteklenmediği için sahte cpu benzeşimi"
|
msgstr "Bu platformda desteklenmediği için sahte cpu benzeşimi"
|
||||||
|
|
||||||
#: cluster.py:796
|
#: cluster.py:840
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(pid)s will use cpu %(affinity)s"
|
msgid "%(pid)s will use cpu %(affinity)s"
|
||||||
msgstr "%(pid)s cpu %(affinity)s kullanacaktır"
|
msgstr "%(pid)s cpu %(affinity)s kullanacaktır"
|
||||||
|
|
||||||
#: conf.py:85
|
#: conf.py:93
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"SAVE_LIMIT_PER (%(option)s) is not a valid option. Options are: 'group', "
|
"SAVE_LIMIT_PER (%(option)s) is not a valid option. Options are: 'group', "
|
||||||
@@ -182,23 +192,23 @@ msgstr ""
|
|||||||
"'group', 'name', 'func' ve None. Varsayılan değer None'dır."
|
"'group', 'name', 'func' ve None. Varsayılan değer None'dır."
|
||||||
|
|
||||||
#. Translators: Cluster status descriptions
|
#. Translators: Cluster status descriptions
|
||||||
#: conf.py:202
|
#: conf.py:210
|
||||||
msgid "Starting"
|
msgid "Starting"
|
||||||
msgstr "Başlıyor"
|
msgstr "Başlıyor"
|
||||||
|
|
||||||
#: conf.py:203
|
#: conf.py:211
|
||||||
msgid "Working"
|
msgid "Working"
|
||||||
msgstr "Çalışıyor"
|
msgstr "Çalışıyor"
|
||||||
|
|
||||||
#: conf.py:204
|
#: conf.py:212
|
||||||
msgid "Idle"
|
msgid "Idle"
|
||||||
msgstr "Boşta"
|
msgstr "Boşta"
|
||||||
|
|
||||||
#: conf.py:205
|
#: conf.py:213
|
||||||
msgid "Stopped"
|
msgid "Stopped"
|
||||||
msgstr "Durdu"
|
msgstr "Durdu"
|
||||||
|
|
||||||
#: conf.py:206
|
#: conf.py:214
|
||||||
msgid "Stopping"
|
msgid "Stopping"
|
||||||
msgstr "Durduruluyor"
|
msgstr "Durduruluyor"
|
||||||
|
|
||||||
@@ -222,123 +232,119 @@ msgstr "Q Cluster'ın bellek kullanımını izler"
|
|||||||
msgid "Monitors Q Cluster activity"
|
msgid "Monitors Q Cluster activity"
|
||||||
msgstr "Q Cluster'ın aktivitelerini izler"
|
msgstr "Q Cluster'ın aktivitelerini izler"
|
||||||
|
|
||||||
#: models.py:125
|
#: models.py:124
|
||||||
msgid "Successful task"
|
msgid "Successful task"
|
||||||
msgstr "Başarılı iş"
|
msgstr "Başarılı iş"
|
||||||
|
|
||||||
#: models.py:126
|
#: models.py:125
|
||||||
msgid "Successful tasks"
|
msgid "Successful tasks"
|
||||||
msgstr "Başarılı işler"
|
msgstr "Başarılı işler"
|
||||||
|
|
||||||
#: models.py:141
|
#: models.py:140
|
||||||
msgid "Failed task"
|
msgid "Failed task"
|
||||||
msgstr "Başarısız iş"
|
msgstr "Başarısız iş"
|
||||||
|
|
||||||
#: models.py:142
|
#: models.py:141
|
||||||
msgid "Failed tasks"
|
msgid "Failed tasks"
|
||||||
msgstr "Başarısız işler"
|
msgstr "Başarısız işler"
|
||||||
|
|
||||||
#: models.py:150 models.py:234
|
#: models.py:149 models.py:222
|
||||||
msgid "Please install croniter to enable cron expressions"
|
msgid "Please install croniter to enable cron expressions"
|
||||||
msgstr "Cron expressions'ları açmak için croniter yükleyin"
|
msgstr "Cron expressions'ları açmak için croniter yükleyin"
|
||||||
|
|
||||||
#: models.py:170
|
#: models.py:165
|
||||||
msgid "e.g. 1, 2, 'John'"
|
msgid "e.g. 1, 2, 'John'"
|
||||||
msgstr "Örneğin: 1, 2, 'Melih'"
|
msgstr "Örneğin: 1, 2, 'Melih'"
|
||||||
|
|
||||||
#: models.py:172
|
#: models.py:167
|
||||||
msgid "e.g. x=1, y=2, name='John'"
|
msgid "e.g. x=1, y=2, name='John'"
|
||||||
msgstr "Örneğin: x=1, y=2, name='Melih'"
|
msgstr "Örneğin: x=1, y=2, name='Melih'"
|
||||||
|
|
||||||
#: models.py:186
|
#: models.py:181
|
||||||
msgid "Once"
|
msgid "Once"
|
||||||
msgstr "Bir kere"
|
msgstr "Bir kere"
|
||||||
|
|
||||||
#: models.py:187
|
#: models.py:182
|
||||||
msgid "Minutes"
|
msgid "Minutes"
|
||||||
msgstr "Dakika"
|
msgstr "Dakika"
|
||||||
|
|
||||||
#: models.py:188
|
#: models.py:183
|
||||||
msgid "Hourly"
|
msgid "Hourly"
|
||||||
msgstr "Saatlik"
|
msgstr "Saatlik"
|
||||||
|
|
||||||
#: models.py:189
|
#: models.py:184
|
||||||
msgid "Daily"
|
msgid "Daily"
|
||||||
msgstr "Günlük"
|
msgstr "Günlük"
|
||||||
|
|
||||||
#: models.py:190
|
#: models.py:185
|
||||||
msgid "Weekly"
|
msgid "Weekly"
|
||||||
msgstr "Haftalık"
|
msgstr "Haftalık"
|
||||||
|
|
||||||
#: models.py:191
|
#: models.py:186
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Weekly"
|
#| msgid "Weekly"
|
||||||
msgid "Biweekly"
|
msgid "Biweekly"
|
||||||
msgstr "İki haftada bir"
|
msgstr "İki haftada bir"
|
||||||
|
|
||||||
#: models.py:192
|
#: models.py:187
|
||||||
msgid "Monthly"
|
msgid "Monthly"
|
||||||
msgstr "Aylık"
|
msgstr "Aylık"
|
||||||
|
|
||||||
#: models.py:193
|
#: models.py:188
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Monthly"
|
#| msgid "Monthly"
|
||||||
msgid "Bimonthly"
|
msgid "Bimonthly"
|
||||||
msgstr "İki ayda bir"
|
msgstr "İki ayda bir"
|
||||||
|
|
||||||
#: models.py:194
|
#: models.py:189
|
||||||
msgid "Quarterly"
|
msgid "Quarterly"
|
||||||
msgstr "Bir Çeyrek (3 Ay)"
|
msgstr "Bir Çeyrek (3 Ay)"
|
||||||
|
|
||||||
#: models.py:195
|
#: models.py:190
|
||||||
msgid "Yearly"
|
msgid "Yearly"
|
||||||
msgstr "Yıllık"
|
msgstr "Yıllık"
|
||||||
|
|
||||||
#: models.py:196
|
#: models.py:191
|
||||||
msgid "Cron"
|
msgid "Cron"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: models.py:199
|
#: models.py:194
|
||||||
msgid "Schedule Type"
|
msgid "Schedule Type"
|
||||||
msgstr "Zamanlama Tipi"
|
msgstr "Zamanlama Tipi"
|
||||||
|
|
||||||
#: models.py:202
|
#: models.py:197
|
||||||
msgid "Number of minutes for the Minutes type"
|
msgid "Number of minutes for the Minutes type"
|
||||||
msgstr "Dakika tipine göre dakika sayısı"
|
msgstr "Dakika tipine göre dakika sayısı"
|
||||||
|
|
||||||
#: models.py:205
|
#: models.py:200
|
||||||
msgid "Repeats"
|
msgid "Repeats"
|
||||||
msgstr "Tekrar eder"
|
msgstr "Tekrar eder"
|
||||||
|
|
||||||
#: models.py:205
|
#: models.py:200
|
||||||
msgid "n = n times, -1 = forever"
|
msgid "n = n times, -1 = forever"
|
||||||
msgstr "n = n kere, -1 = sonsuza kadar"
|
msgstr "n = n kere, -1 = sonsuza kadar"
|
||||||
|
|
||||||
#: models.py:208
|
#: models.py:203
|
||||||
msgid "Next Run"
|
msgid "Next Run"
|
||||||
msgstr "Bir dahaki çalışma tarihi"
|
msgstr "Bir dahaki çalışma tarihi"
|
||||||
|
|
||||||
#: models.py:215
|
#: models.py:210
|
||||||
msgid "Cron expression"
|
msgid "Cron expression"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: models.py:224
|
#: models.py:287
|
||||||
msgid "Name of kwarg to pass intended schedule date"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: models.py:299
|
|
||||||
msgid "Scheduled task"
|
msgid "Scheduled task"
|
||||||
msgstr "Zamanlanmış iş"
|
msgstr "Zamanlanmış iş"
|
||||||
|
|
||||||
#: models.py:300
|
#: models.py:288
|
||||||
msgid "Scheduled tasks"
|
msgid "Scheduled tasks"
|
||||||
msgstr "Zamanlanmış işler"
|
msgstr "Zamanlanmış işler"
|
||||||
|
|
||||||
#: models.py:326
|
#: models.py:314
|
||||||
msgid "Queued task"
|
msgid "Queued task"
|
||||||
msgstr "Sıraya alınmış iş"
|
msgstr "Sıraya alınmış iş"
|
||||||
|
|
||||||
#: models.py:327
|
#: models.py:315
|
||||||
msgid "Queued tasks"
|
msgid "Queued tasks"
|
||||||
msgstr "Sıraya alınmış işler"
|
msgstr "Sıraya alınmış işler"
|
||||||
|
|
||||||
|
|||||||
@@ -55,6 +55,10 @@ Optional
|
|||||||
|
|
||||||
$ pip install psutil
|
$ pip install psutil
|
||||||
|
|
||||||
|
- `setproctitle <https://github.com/dvarrazzo/py-setproctitle>`__ python module to customize the process title by Daniele Varrazzo', is an optional requirement used to set informative process titles::
|
||||||
|
|
||||||
|
$ pip install setproctitle
|
||||||
|
|
||||||
- `Hiredis <https://github.com/redis/hiredis>`__ parser. This C library maintained by the core Redis team is faster than the standard PythonParser during high loads::
|
- `Hiredis <https://github.com/redis/hiredis>`__ parser. This C library maintained by the core Redis team is faster than the standard PythonParser during high loads::
|
||||||
|
|
||||||
$ pip install hiredis
|
$ pip install hiredis
|
||||||
|
|||||||
Generated
+1081
-996
File diff suppressed because it is too large
Load Diff
+2
-1
@@ -59,6 +59,7 @@ croniter = { version = "^1.3.7", optional = true }
|
|||||||
django-q-rollbar = {version = ">=0.1", optional = true}
|
django-q-rollbar = {version = ">=0.1", optional = true}
|
||||||
django-q-sentry = {version = ">=0.1", optional = true}
|
django-q-sentry = {version = ">=0.1", optional = true}
|
||||||
redis = {version = "^4.3.4", optional = true}
|
redis = {version = "^4.3.4", optional = true}
|
||||||
|
setproctitle = {version = "^1.3.2", optional = true}
|
||||||
|
|
||||||
|
|
||||||
[tool.poetry.dev-dependencies]
|
[tool.poetry.dev-dependencies]
|
||||||
@@ -72,7 +73,7 @@ isort = {extras = ["requirements_deprecated_finder"], version = "^5.10.1"}
|
|||||||
[tool.poetry.extras]
|
[tool.poetry.extras]
|
||||||
requires = ["poetry_core>=1.0.0"]
|
requires = ["poetry_core>=1.0.0"]
|
||||||
build-backend = ["poetry.core.masonry.api"]
|
build-backend = ["poetry.core.masonry.api"]
|
||||||
testing = ["django-redis", "croniter", "hiredis", "psutil", "iron-mq", "boto3", "pymongo", "blessed", "redis"]
|
testing = ["django-redis", "croniter", "hiredis", "psutil", "iron-mq", "boto3", "pymongo", "blessed", "redis", "setproctitle"]
|
||||||
rollbar = ["django-q-rollbar"]
|
rollbar = ["django-q-rollbar"]
|
||||||
sentry = ["django-q-sentry"]
|
sentry = ["django-q-sentry"]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user