mirror of
https://github.com/django-q2/django-q2.git
synced 2026-10-05 20:28:12 +08:00
#50 adds psutil as alternative os.getppid provider
This commit is contained in:
+2
-3
@@ -11,7 +11,6 @@ standard_library.install_aliases()
|
|||||||
|
|
||||||
# Standard
|
# Standard
|
||||||
import importlib
|
import importlib
|
||||||
import os
|
|
||||||
import signal
|
import signal
|
||||||
import socket
|
import socket
|
||||||
import sys
|
import sys
|
||||||
@@ -31,7 +30,7 @@ from django import db
|
|||||||
import signing
|
import signing
|
||||||
import tasks
|
import tasks
|
||||||
|
|
||||||
from django_q.conf import Conf, redis_client, logger, psutil
|
from django_q.conf import Conf, redis_client, logger, psutil, get_ppid
|
||||||
from django_q.models import Task, Success, Schedule
|
from django_q.models import Task, Success, Schedule
|
||||||
from django_q.monitor import Status, Stat, ping_redis
|
from django_q.monitor import Status, Stat, ping_redis
|
||||||
|
|
||||||
@@ -111,7 +110,7 @@ class Sentinel(object):
|
|||||||
signal.signal(signal.SIGINT, signal.SIG_IGN)
|
signal.signal(signal.SIGINT, signal.SIG_IGN)
|
||||||
signal.signal(signal.SIGTERM, signal.SIG_DFL)
|
signal.signal(signal.SIGTERM, signal.SIG_DFL)
|
||||||
self.pid = current_process().pid
|
self.pid = current_process().pid
|
||||||
self.parent_pid = os.getppid()
|
self.parent_pid = get_ppid()
|
||||||
self.name = current_process().name
|
self.name = current_process().name
|
||||||
self.list_key = list_key
|
self.list_key = list_key
|
||||||
self.r = redis_client
|
self.r = redis_client
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ from django.utils.translation import ugettext_lazy as _
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
||||||
# external
|
# external
|
||||||
|
import os
|
||||||
import redis
|
import redis
|
||||||
|
|
||||||
# optional
|
# optional
|
||||||
@@ -143,3 +144,13 @@ def get_redis_client():
|
|||||||
|
|
||||||
# redis client
|
# redis client
|
||||||
redis_client = get_redis_client()
|
redis_client = get_redis_client()
|
||||||
|
|
||||||
|
|
||||||
|
# get parent pid compatibility
|
||||||
|
def get_ppid():
|
||||||
|
if hasattr(os, 'getppid'):
|
||||||
|
return os.getppid()
|
||||||
|
elif psutil:
|
||||||
|
return psutil.Process(os.getpid()).ppid()
|
||||||
|
else:
|
||||||
|
raise OSError('Your OS does not support `os.getppid`. Please install `psutil` as an alternative provider.')
|
||||||
|
|||||||
Reference in New Issue
Block a user