nginx+DataSnapにおけるAPIの長時間実行について

解決


のぶ  2022-08-25 12:47:37  No: 150386

nginxをプロキシ、DataSnapをバックエンドとして、
FMXで開発したモバイルアプリからAPIを長時間実行する場合ですが、
WEB開発の経験がほとんどないため、色々と調べた結果、
下記の方法が一般的なやり方で問題ないでしょうか?

①nginx、DataSnapそれぞれTimeOutを長時間に変更
②別途、長時間実行の状況を返したり、キャンセルできたりするAPIを定義
 ※長時間実行の状況はサーバ側でデータベースで管理
③モバイルアプリ側では長時間APIを非同期で実行し、
 ②の状況確認APIをタイマーで定期実行


mam  2022-08-26 09:54:13  No: 150388

PHPでの経験しか無いのですが、以下、どちらかの方法で対応しました。

(1)のぶ 様の方法
(2)webサーバー[nginx]のタイムアウトは長くしないで、要求があったら、別途バッチ実行[cronやタスクスケジューラー等で定期的に要求確認と実行でもいい]で処理。処理が完了したかの結果[割合でもいい]を見に行って、表示し、完了していれば表示又はダウンロード等が出来る。

タイムアウト時間は長くしたない事が多いので(2)を望まれる場合が多いです。
外していたらすいません。


のぶ  2022-08-26 11:11:36  No: 150389

mamさん
(1)の方法も実績としてあるということでよかったです。
nginxとDataSnapに負荷を与え続けることになるので、
ご紹介いただいた(2)の方法も良い気がしてきました。
色々と検討したいと思います。

WEB開発のご経験のあるmamさんのアドバイス大変参考になりました。
ご回答大変ありがとうございました。


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加