- 投稿日:2019-12-30T20:19:18+09:00
bashでhealth check
bashでhealth checkのめも
php-fpmとcrondを監視します
#!/bin/bash while true do PHP=`sudo ps ax | grep 'php-fpm: master' | grep -v grep | wc -l` CROND=`sudo ps ax | grep 'crond' | grep -v grep | wc -l` if [ $PHP = 1 ] && [ $CROND = 1 ] ; then echo "HTTP/1.0 200 Ok" | nc -l 8080 else echo "HTTP/1.0 500 NG" | nc -l 8080 fi [ $? != 0 ] && break done
- 投稿日:2019-12-30T17:03:07+09:00
?【Laravel】register_shutdown_function()使うときは配列にして$thisも渡す
環境
PHP 7.3.10
Laravel 6.5.0やりたいこと
関数の実行終了前に任意の関数呼び出すregister_shutdown_function()をLaravelで使いたい
が、こいつを書くと下記の例外が発生するErrorException register_shutdown_function(): Invalid shutdown callback 'HogeHoge' passedどうやらインスタンスメソッドである「$this」を渡さないといけない様子
やったこと
引数を配列にして$thisと対象の関数名を渡す
HogeController.php/** * 完了前にコールバックを呼び出したい関数 * * @param Request $request */ public function doSomething(Request $request) { // 色々処理します // ... // ❌例外発生パターン register_shutdown_function('HogeHoge'); // ?これで実行できます register_shutdown_function([$this, 'HogeHoge']); return back(); } /** * 実行完了時に呼びだされるコールバック関数 * * @return void */ public function HogeHoge(): void { // ログ作成、終了処理等の何かをする // ... }結果
例外なく呼び出せます
$thisじゃなくても指定できそうにも見えますCakePHPでも同じ方法で解決できました