p1-taskqueue 0.1.4__py3-none-any.whl → 0.1.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of p1-taskqueue might be problematic. Click here for more details.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: p1-taskqueue
3
- Version: 0.1.4
3
+ Version: 0.1.6
4
4
  Summary: A Task Queue Wrapper for Dekoruma Backend
5
5
  Author-email: Chalvin <engineering@dekoruma.com>
6
6
  Project-URL: Homepage, https://github.com/Dekoruma/p1-taskqueue
@@ -1,9 +1,9 @@
1
1
  taskqueue/__init__.py,sha256=gVDUAurwUijthE9_36FmhAQTBf7veGgjnew-amrTrmg,241
2
2
  taskqueue/celery_app.py,sha256=dUT-7XzsSQbr8vKrLv7f_6iYxTCUEJZHEt9fL-KIQ5U,3302
3
- taskqueue/cmanager.py,sha256=Xh89VbBYclb-RcmaisqEJfezkT-isyWkQ3KHdSpf_aM,9821
3
+ taskqueue/cmanager.py,sha256=pBxHi3FT2zuiM3iaMII6KPLYR7DOJmShQH4bzi1xkAU,11076
4
4
  taskqueue/libs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  taskqueue/libs/helper_test.py,sha256=_yfPhm_7CzbN30j7E_Ld5KwXRlGHhTNrRTOBZQySEIU,3656
6
- p1_taskqueue-0.1.4.dist-info/METADATA,sha256=uapQZwJie_JNIfgfJM2zLTXpDIsOVZHAB7ffZj9rvjY,1508
7
- p1_taskqueue-0.1.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
8
- p1_taskqueue-0.1.4.dist-info/top_level.txt,sha256=hA3SM1ik2K8iPqtlt_-_nJ4TAePwHPN3vsOc4EiynqU,10
9
- p1_taskqueue-0.1.4.dist-info/RECORD,,
6
+ p1_taskqueue-0.1.6.dist-info/METADATA,sha256=B29pPPy3lL9ubU1TBuXbW_HUFPewzBDAPfB5zSTmKss,1508
7
+ p1_taskqueue-0.1.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
8
+ p1_taskqueue-0.1.6.dist-info/top_level.txt,sha256=hA3SM1ik2K8iPqtlt_-_nJ4TAePwHPN3vsOc4EiynqU,10
9
+ p1_taskqueue-0.1.6.dist-info/RECORD,,
taskqueue/cmanager.py CHANGED
@@ -160,17 +160,18 @@ class CManager:
160
160
  task_name, task_args, task_kwargs = _build_dynamic_task_call(
161
161
  func, *func_args, **func_kwargs)
162
162
 
163
- self._send_task(task_name, task_args, task_kwargs, queue_kwargs)
163
+ task_id = self._send_task(task_name, task_args,
164
+ task_kwargs, queue_kwargs)
164
165
 
165
- logger.info('[_enqueue_op_base %s] Submit Celery Task SUCCESS, task_name: %s args: %s, kwargs: %s' % (
166
- enqueue_op_type, task_name, task_args, task_kwargs))
166
+ logger.info('[_enqueue_op_base %s] Submit Celery Task SUCCESS, task_name: %s args: %s, kwargs: %s, task_id: %s' % (
167
+ enqueue_op_type, task_name, task_args, task_kwargs, task_id))
167
168
 
168
169
  except Exception as e:
169
170
  logger.exception('[_enqueue_op_base %s] Submit Celery Task FAILED, error: %s, args: %s, kwargs: %s' % (
170
171
  enqueue_op_type, str(e), args, kwargs))
171
172
  raise e
172
173
 
173
- def _send_task(self, task_name: str, task_args: list, task_kwargs: dict, queue_kwargs: Dict[str, Any]) -> None:
174
+ def _send_task(self, task_name: str, task_args: list, task_kwargs: dict, queue_kwargs: Dict[str, Any]) -> str:
174
175
  celery_app = self._get_celery_app()
175
176
 
176
177
  queue_name = queue_kwargs.pop("channel", None)
@@ -194,8 +195,9 @@ class CManager:
194
195
  else:
195
196
  task_kwargs_with_retry["retry"] = retry_policy
196
197
 
197
- celery_app.send_task(task_name, args=task_args,
198
- kwargs=task_kwargs_with_retry, **send_opts)
198
+ task = celery_app.send_task(task_name, args=task_args,
199
+ kwargs=task_kwargs_with_retry, **send_opts)
200
+ return str(task.id)
199
201
 
200
202
 
201
203
  cm = CManager()
@@ -204,14 +206,21 @@ cm = CManager()
204
206
  # Dynamic task executors - handle function and class method execution
205
207
  @shared_task(bind=True, max_retries=K_MAX_RETRY_COUNT)
206
208
  def dynamic_function_executor(self, module_path, function_name, args=None, kwargs=None, retry=None):
209
+ job_id = self.request.id
207
210
  try:
208
211
  module = importlib.import_module(module_path)
209
212
  function = getattr(module, function_name)
210
213
  args = args or []
211
214
  kwargs = kwargs or {}
215
+ logger.info(
216
+ f"[TaskQueue] Executing dynamic function: {function_name} with args: {args} and kwargs: {kwargs}, job_id: {job_id}")
212
217
  function(*args, **kwargs)
218
+ logger.info(
219
+ f"[TaskQueue] Dynamic function execution completed successfully, function_name: {function_name}, args: {args}, kwargs: {kwargs}, job_id: {job_id}")
213
220
  return None
214
221
  except Exception as e:
222
+ logger.exception(
223
+ f"[TaskQueue] Error executing dynamic function: {function_name} with args: {args} and kwargs: {kwargs}, error_class: {e.__class__.__name__}, error: {e}, job_id: {job_id}")
215
224
  current_retries = getattr(self.request, 'retries', 0) or 0
216
225
  max_retries = self.max_retries or K_MAX_RETRY_COUNT
217
226
  if isinstance(retry, dict) and 'max_retries' in retry:
@@ -229,6 +238,7 @@ def dynamic_function_executor(self, module_path, function_name, args=None, kwarg
229
238
 
230
239
  @shared_task(bind=True, max_retries=K_MAX_RETRY_COUNT)
231
240
  def dynamic_class_method_executor(self, module_path, class_name, method_name, args=None, kwargs=None, retry=None):
241
+ job_id = self.request.id
232
242
  try:
233
243
  module = importlib.import_module(module_path)
234
244
  class_obj = getattr(module, class_name)
@@ -236,9 +246,15 @@ def dynamic_class_method_executor(self, module_path, class_name, method_name, ar
236
246
  method = getattr(instance, method_name)
237
247
  args = args or []
238
248
  kwargs = kwargs or {}
249
+ logger.info(
250
+ f"[TaskQueue] Executing dynamic class method: {method_name} with args: {args} and kwargs: {kwargs}, job_id: {job_id}")
239
251
  method(*args, **kwargs)
252
+ logger.info(
253
+ f"[TaskQueue] Dynamic class method execution completed successfully, method_name: {method_name}, args: {args}, kwargs: {kwargs}, job_id: {job_id}")
240
254
  return None
241
255
  except Exception as e:
256
+ logger.exception(
257
+ f"[TaskQueue] Error executing dynamic class method: {method_name} with args: {args} and kwargs: {kwargs}, error_class: {e.__class__.__name__}, error: {e}, job_id: {job_id}")
242
258
  current_retries = getattr(self.request, 'retries', 0) or 0
243
259
  max_retries = self.max_retries or K_MAX_RETRY_COUNT
244
260
  if isinstance(retry, dict) and 'max_retries' in retry: