Skip to content

Commit 6314e4d

Browse files
committed
New version: Enabled logging exception and status of task before and after sending to the dqm socket, added continue in main worker while loop in order to continue on exception
1 parent 4fc575a commit 6314e4d

File tree

8 files changed

+34
-24
lines changed

8 files changed

+34
-24
lines changed

django-queue-manager/build/lib/django_queue_manager/models.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,8 @@ class QueuedTasks(models.Model):
3030
dqmqueue = models.ForeignKey(DQMQueue, on_delete=models.CASCADE)
3131

3232
def __str__(self):
33-
return "Job-Id: {job_id} -> Function Name: {function_name} -> Queued on: {queued_on} -> Queue: {queue}".format(
33+
return "Job-Id: {job_id} -> Queued on: {queued_on} -> Queue: {queue}".format(
3434
job_id=self.pk,
35-
function_name=self.task_function_name,
3635
queued_on=self.queued_on, queue=self.dqmqueue.description)
3736

3837
class Meta:
@@ -50,9 +49,8 @@ class SuccessTasks(models.Model):
5049
dqmqueue = models.ForeignKey(DQMQueue, on_delete=models.CASCADE)
5150

5251
def __str__(self):
53-
return "Job-Id: {job_id} -> Function Name: {function_name} -> Success on: {success_on} -> Queue: {queue}".format(
52+
return "Job-Id: {job_id} -> Success on: {success_on} -> Queue: {queue}".format(
5453
job_id=self.task_id,
55-
function_name=self.task_function_name,
5654
success_on=self.success_on, queue=self.dqmqueue.description)
5755

5856
class Meta:
@@ -71,9 +69,8 @@ class FailedTasks(models.Model):
7169
dqmqueue = models.ForeignKey(DQMQueue, on_delete=models.CASCADE)
7270

7371
def __str__(self):
74-
return "Job-Id: {job_id} -> Function Name: {function_name} -> Failed on: {failed_on} -> Queue: {queue}".format(
72+
return "Job-Id: {job_id} -> Failed on: {failed_on} -> Queue: {queue}".format(
7573
job_id=self.task_id,
76-
function_name=self.task_function_name,
7774
failed_on=self.failed_on, queue=self.dqmqueue.description)
7875

7976
class Meta:

django-queue-manager/build/lib/django_queue_manager/worker.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -90,21 +90,29 @@ def run(self):
9090
# Save it on the failed table
9191
TaskManager.save_task_failed(task, e)
9292

93+
9394
self.logger.warning(
9495
'Task Id {db_id} failed!'.format(name=task.task_function_name,
9596
db_id=task.db_id))
9697
#Continue the loop if the task throw an exception
9798
continue
9899

99-
# Removes the enqueued task from the DB after execution or failure
100-
TaskManager.delete_enqueued_task(task)
101-
self.logger.info('Removing Task Id {db_id} from enqueued tasks!'.format(
102-
name=task.task_function_name,
103-
db_id=task.db_id))
100+
finally:
101+
#In any case, it will dequeue the task form the queued tasks
102+
self.dequeue_task(task=task)
103+
104+
104105

105106
else:
106107
# In order to respect the CPU sleeps for 50 milliseconds when the queue it's empty
107108
time.sleep(0.050)
108109

109110
self.worker_queue = None
110111
self.logger.warning('Worker Thread stopped, {0} tasks handled'.format(self.tasks_counter))
112+
113+
def dequeue_task(self, task):
114+
# Removes the enqueued task from the DB after execution or failure
115+
TaskManager.delete_enqueued_task(task)
116+
self.logger.info('Removing Task Id {db_id} from enqueued tasks!'.format(
117+
name=task.task_function_name,
118+
db_id=task.db_id))
26.3 KB
Binary file not shown.
18.1 KB
Binary file not shown.

django-queue-manager/django_queue_manager.egg-info/PKG-INFO

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Metadata-Version: 1.1
22
Name: django-queue-manager
3-
Version: 1.2.4
3+
Version: 1.2.5
44
Summary: A simple app that provides a Message Queue System using a socket as broker, this app, make you able to manage an ordered queue of tasks (with calling a simple queuing function form API).Simple to setup, easy to manage and scalable, the queue can be remotized to another server,you can use multiple istance of the application, and easly manage multiple broker and relatives queues.This app, will integrate into your DB backend and serves three table with the states of the queue.
55
Home-page: http://www.fardellasimone.com/
66
Author: Fardella Simone

django-queue-manager/django_queue_manager/models.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,8 @@ class QueuedTasks(models.Model):
3030
dqmqueue = models.ForeignKey(DQMQueue, on_delete=models.CASCADE)
3131

3232
def __str__(self):
33-
return "Job-Id: {job_id} -> Function Name: {function_name} -> Queued on: {queued_on} -> Queue: {queue}".format(
33+
return "Job-Id: {job_id} -> Queued on: {queued_on} -> Queue: {queue}".format(
3434
job_id=self.pk,
35-
function_name=self.task_function_name,
3635
queued_on=self.queued_on, queue=self.dqmqueue.description)
3736

3837
class Meta:
@@ -50,9 +49,8 @@ class SuccessTasks(models.Model):
5049
dqmqueue = models.ForeignKey(DQMQueue, on_delete=models.CASCADE)
5150

5251
def __str__(self):
53-
return "Job-Id: {job_id} -> Function Name: {function_name} -> Success on: {success_on} -> Queue: {queue}".format(
52+
return "Job-Id: {job_id} -> Success on: {success_on} -> Queue: {queue}".format(
5453
job_id=self.task_id,
55-
function_name=self.task_function_name,
5654
success_on=self.success_on, queue=self.dqmqueue.description)
5755

5856
class Meta:
@@ -71,9 +69,8 @@ class FailedTasks(models.Model):
7169
dqmqueue = models.ForeignKey(DQMQueue, on_delete=models.CASCADE)
7270

7371
def __str__(self):
74-
return "Job-Id: {job_id} -> Function Name: {function_name} -> Failed on: {failed_on} -> Queue: {queue}".format(
72+
return "Job-Id: {job_id} -> Failed on: {failed_on} -> Queue: {queue}".format(
7573
job_id=self.task_id,
76-
function_name=self.task_function_name,
7774
failed_on=self.failed_on, queue=self.dqmqueue.description)
7875

7976
class Meta:

django-queue-manager/django_queue_manager/worker.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -90,21 +90,29 @@ def run(self):
9090
# Save it on the failed table
9191
TaskManager.save_task_failed(task, e)
9292

93+
9394
self.logger.warning(
9495
'Task Id {db_id} failed!'.format(name=task.task_function_name,
9596
db_id=task.db_id))
9697
#Continue the loop if the task throw an exception
9798
continue
9899

99-
# Removes the enqueued task from the DB after execution or failure
100-
TaskManager.delete_enqueued_task(task)
101-
self.logger.info('Removing Task Id {db_id} from enqueued tasks!'.format(
102-
name=task.task_function_name,
103-
db_id=task.db_id))
100+
finally:
101+
#In any case, it will dequeue the task form the queued tasks
102+
self.dequeue_task(task=task)
103+
104+
104105

105106
else:
106107
# In order to respect the CPU sleeps for 50 milliseconds when the queue it's empty
107108
time.sleep(0.050)
108109

109110
self.worker_queue = None
110111
self.logger.warning('Worker Thread stopped, {0} tasks handled'.format(self.tasks_counter))
112+
113+
def dequeue_task(self, task):
114+
# Removes the enqueued task from the DB after execution or failure
115+
TaskManager.delete_enqueued_task(task)
116+
self.logger.info('Removing Task Id {db_id} from enqueued tasks!'.format(
117+
name=task.task_function_name,
118+
db_id=task.db_id))

django-queue-manager/setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
setup(
1111
name='django-queue-manager',
12-
version='1.2.4',
12+
version='1.2.5',
1313
packages=find_packages(),
1414
include_package_data=True,
1515
license='GNU GPLv3',

0 commit comments

Comments
 (0)