業務こなしての問題・気づき
python
celeryをwindows上で起動
windowsのceleryは、マルチスレッドに対応していないため、linux/macと同じコマンドで起動することはできない。
celery -A {プロジェクト名} worker --pool=solo
みたいな感じで実行する必要がある。
実行プールを単一で動かすらしい。
ワーカースレッドが立ち上がるわけではないらしいので、JavaScriptのPromiseみたいな感じでタスク処理が実行されているのかも知れない。
Celery Execution Pools: What is it all about? | distributedpython
バージョンアップで、windows上では動かなくなる可能性もありそうとの情報をどこかで見かけた。
pythonは、windows対応を捨ててるのかな?って感じた。
winsowsを持っている人は多いので、対応をちゃんとすれば、開発者は増えそうな気がする。
そういえば、python使いの人は、macで開発していることが多いなって、振り返って感じた。
celery + djangoの実装
celeryの実装とdjangoの実装が混じって、どっちのコードなのか分からなくなることがある。
開発した人以外が見ると、意味不明状態。俺がそうだった。
考えたが、フォルダ構成でなんとかするぐらいしか思いつかなかった。。。
JavaScript
Maximum cell stack size execeded
メッセージの内容は、コールスタックが満杯になった。
原因が分かりづらい。。。
メッセージ発生する前に行っていた操作内容にあたりをつけて調査するしか無い。
自分が見つけたのは、ボタンクリックイベント内で読んでいるメソッドの中で、さらにクリックイベントを起こしていたので、無限に呼び出しが連鎖していた。
centos
CentOS7でdjango4.4を動かす場合、sqlite3.8.3以上が必要になる。 しかし、centos7の最新のsqlite3は、sqlite3.8.3未満なので、sqliteのソースを落としてビルドするしかない。
Django2.2で開発サーバー起動時にSQLite3のエラーが出た場合の対応 - Qiita
Django入門 (チュートリアル) - とほほのWWW入門
# yum install -y wget gcc make # wget https://www.sqlite.org/2019/sqlite-autoconf-3290000.tar.gz # tar zxvf ./sqlite-autoconf-3290000.tar.gz # cd ./sqlite-autoconf-3290000 # ./configure --prefix=/usr/local # make # make install # cd .. # rm -rf ./sqlite-autoconf-3290000 ./sqlite-autoconf-3290000.tar.gz # mv /usr/bin/sqlite3 /usr/bin/sqlite3_old # ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3 # echo 'export LD_LIBRARY_PATH="/usr/local/lib"' >> ~/.bashrc # source ~/.bashrc
考えたこと
サーバー構成
1台のサーバーに複数アプリを入れるのは、辞めた方がいい気がする。
必要としているライブラリが一緒ならいいが、そういったケースはない気がする。。。
GCEでサーバー作るなら、複数インスタンスを作って対応したほうがいい。
※金の問題がないのなら。
ポエム
なんか、俺は無能なのではなかろうか?と、唐突もなく不安な感情に襲われることがある。
どう対応したらいいのだ?
歳を取るにつれて、こういった感情が強くなってきている気がする。
解消するには、何かに打ち込むしかないのだろうか?
それとも、何かを作れば満足するのだろうか?
何もしないままだと、この問題は解消されないのは分かっているが、行動に移せていない。
いろんな誘惑が、この不安になる感情を一時的に中和してしまっている気がする。
どこかで、決意をしっかりできる儀式みたいなものが必要なのかも知れない。