(コメント)
def find_process_ids(pattern): """ pattern にマッチするプロセスIDを探して返す (自分以外) :rtype: list """ self_pid = os.getpid() try: out = subprocess.check_output(['pgrep', '-f', pattern]) return list(filter( lambda x: x != self_pid, map(int, out.splitlines()))) except subprocess.CalledProcessError: return [] def runs_once(batch_name): """ マネジメントコマンドの重複起動防止 @runs_once(__file__) def handle(...): ... """ re_batch_name = re.compile(r'^/.*/(\w+)\.py$') m = re_batch_name.match(batch_name) if m: batch_name = m.group(1) def _inner(func): @wraps(func) def decorate(*args, **kwargs): process_ids = find_process_ids(batch_name) if process_ids: print('process already exists. {}, {}'.format( batch_name, process_ids) ) return else: return func(*args, **kwargs) return decorate return _inner
これまでいろんなグッズを作ってきたけど、今回は「お米」と聞いて買うしかないなと。今夜の夕食はコシヒカリ!箸もセットだし^^ https://t.co/01ucQx9qtw #腰乃展 #マンガ展 https://t.co/4VL2vOe0Og
6 ヶ月 前
講談社さんとやった全部入り電子書籍セットがギネスブックに登録されたよー https://t.co/rbkd3IYub0
6 ヶ月 前
コメント