エンターテイメント!!

遊戯王好きのJavaエンジニアのブログ。バーニングソウルを会得する特訓中。

2020/06/22週 気づきと振り返り

業務こなしての問題・気づき

python

celerywindows上で起動

windowsceleryは、マルチスレッドに対応していないため、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でサーバー作るなら、複数インスタンスを作って対応したほうがいい。
※金の問題がないのなら。

ポエム

なんか、俺は無能なのではなかろうか?と、唐突もなく不安な感情に襲われることがある。
どう対応したらいいのだ?
歳を取るにつれて、こういった感情が強くなってきている気がする。

解消するには、何かに打ち込むしかないのだろうか?
それとも、何かを作れば満足するのだろうか?
何もしないままだと、この問題は解消されないのは分かっているが、行動に移せていない。

いろんな誘惑が、この不安になる感情を一時的に中和してしまっている気がする。

どこかで、決意をしっかりできる儀式みたいなものが必要なのかも知れない。