4.6K Views
March 07, 21
スライド概要
https://rakus.connpass.com/event/201934/ で発表したやつ。 ブログ記事はこれ https://asmsuechan.hatenablog.com/entry/2020/11/11/150746
ある日の暮方の事である。一人の下人が、羅生門の下で雨やみを待っていた。広い門の下には、この男のほかに誰もいない。ただ、所々丹塗の剥はげた、大きな円柱に、蟋蟀が一匹とまっている。羅生門が、朱雀大路にある以上は、この男のほかにも、雨やみをする市女笠や揉烏帽子が、もう二三人はありそうなものである。それが、この男のほかには誰もいない。何故かと云うと、この二三年、京都には、地震とか辻風とか火事とか饑饉とか云う災がつづいて起った。そこで洛中のさびれ方は一通りではない。旧記によると、仏像や仏具を打砕いて、その丹がついたり、金銀の箔がついたりした木を、路ばたにつみ重ねて、薪の料に売っていたと云う事である。洛中がその始末であるから、羅生門の修理などは、元より誰も捨てて顧る者がなかった。するとその荒れ果てたのをよい事にして、狐狸が棲すむ。盗人が棲む。とうとうしまいには、引取り手のない死人を、この門へ持って来て
Pythonでジョブキューシステム作った 2021.02.25 Python Tips LT会 asmsuechan 1
0. 私は誰 • ハンドルネーム: asmsuechan • 修論提出後の暇な大学院生 • 研究テーマはROSロボットの自律移動 • 就職先ではPythonを使う予定がない 2
今日はPythonでジョブキューシステムを自作して 研究室内打刻システムで活用している話をします。 なのでまず打刻システムの話をちょっとします 3
以前研究室用打刻システムを作りました https://moriokalab.com/news/75 4
外観 構成要素 • Raspberry Pi • NFCカードリーダー • ちっちゃいスピーカー • ソフトウェアはPythonで作ってる ※打刻は大学側からの要請 5
導入当初は問題なく動作していました・・・ 6
しかし、ある日学生証をタッチしても 打刻されなくなってしまいました・・・ 7
この原因は、Raspberry Piのネットワーク 接続が不安定になっていたため。 8
問題: 失敗した打刻のリクエストが失われてしまう データはsqliteに保存されてるから復旧可能。でもめんどくさい。 9
問題: 失敗した打刻のデータが失われてしまう これを防ぐためにはリトライして欲しい 10
うーん、ジョブキューシステム作るか!w そうはならんやろ! 11
ジョブキューシステムの簡単な説明 メッセージ 打刻システムくん 関数の場所 ジョブキューシステム その引数 (別プロセス) ジョブキューシステムが打刻システムの代わりにタスクを実行してくれる。 会員登録時のメール送信とかでよく使われてるよ! 12
作ったもの queick: A simple job-queue system for Python https://github.com/asmsuechan/queick 13
特徴たち コンセプトはDeadly Simple • Redisを使わない(データはインメモリ保存) • 標準ライブラリ縛り • ネットワークの復帰時にジョブをリトライする機能 • • • • リトライ機構あり 日時指定のスケジュール実行可能 ←一般的なジョブキューシステムで 定期実行(cron) 実装されてる機能たち ジョブは新しく生成したスレッドで実行 14
Q. なぜ既存のものを使わずに自作したのか? A. (1) RedisやPostgres等のミドルウェアを入れたくなかった (2) ネットワーク復帰時リトライ機能を実装しているものがなかった (3) 個人的な趣味 15
地味なTips 「作ったよ!」だけで終わるのは忍びないのでちょっと紹介 • • • • PythonのジョブキューシステムはRQが有名そう Pythonで並行処理したいならconcurrent.futureさんが便利 標準ライブラリ縛りプログラミングは楽しい 難しそうなものも作れば案外作れる 16
終 ちょっとマニアックな話だったかもしれない 詳しい話はブログに書いてます このソフトウェアが気になる人は連絡ください。何かします。 17