npushに改善したい事はプシュ通知.追加した機能はこれ.
2024.10.30
おはようございます.npushに改善したい事はプシュ通知.本日追加した機能はこれです.使わなくなったスケジュールを定期的に削除する機能です.コード的には3行ほどのコードなんだけど、そこまで手が回らなかった.アクセス数が頻繁にあるサイトは定期的に機能追加とかしているのだけど、npushは全然駄目で運営が軌道に乗るまでかなり時間がかかりそうです.
<?php
namespace App\Jobs;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Foundation\Queue\Queueable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Models\ListItem;
use App\Models\TelevisionSchedule;
use DateTime;
class delDataJob implements ShouldQueue
{
use Queueable;
/**
* Create a new job instance.
*/
public function __construct()
{
//
}
/**
* Execute the job.
*/
public function handle(): void
{
//
$datetime = new DateTime();
ListItem::where('created_at','<=',$datetime->format('Y-m-d H:i:s'))->delete();
TelevisionSchedule::where('end_time','<=',$datetime->format('Y-m-d H:i:s'))->delete();
}
}
そもそもNHKを見る人はデジタル世代に少なそうということはこのサービスを作った時点で分かっていたのだけど、それでも作ったのは単なる自分が必要だっただけなんですね.ともあれ、もう運用しているので何とか軌道に乗せたいなって思いますが道は険しいです.このままではサービス停止もあり得ることなのかも.
最後に技術的なお話.Laravel11からスケジュール設定を書く場所が変更になりました.下記の場所にスケジュールを登録しないと動かないようですね.Laravel9からLaravel10、11と引き継いで来た場合は旧の階層で大丈夫そうです.
routes/console.php
<?php
use Illuminate\Foundation\Inspiring;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Schedule;
use App\Jobs\delDataJob;
Schedule::job(new delDataJob())->dailyAt('10:10');
明日へ続く
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
$datetime, construct, format, job, ListItem, lt, npush, routes, Schedule, TelevisionSchedule, use IlluminateContractsQueueShouldQueue, use IlluminateFoundationBusDispatchable, use IlluminateFoundationInspiring, use IlluminateFoundationQueueQueueable, use IlluminateQueueInteractsWithQueue, use IlluminateQueueSerializesModels, use IlluminateSupportFacadesArtisan, use IlluminateSupportFacadesSchedule, void, where,
Laravelがまぁまぁ身についてきいる。
2024.01.10
おはようございます、Laravelがまぁまぁ身についてきいるのですが今年はもっと磨きをかけたいなって思っています。非同期処理とかキューとかは一通り理解できた感じですが、DDDが未だまだ感が強いのでそこを慣れていきたいなって思っています。
スケジュールでJobを実行する場合、withoutOverlappingをお忘れなく。無いと重い処理とかでコケちゃう部分が出てくるのでこれは必須だと思います。Qiitaに有ると無いとでの処理の時系列を解説されている方がいるので、そちらを参考にしてみてください。
$schedule->command($command)->everyMinute()->withoutOverlapping();
明日へ続く。
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
-Command, $schedule->, DDD, everyMinute, gt, job, Laravel, qiita, withoutOverlapping, キュー, コケちゃう部分, スケジュール, 一通り, 処理, 参考, 必須, 時系列, 身, 非同期処理,