nginxをプロキシ、DataSnapをバックエンドとして、
FMXで開発したモバイルアプリからAPIを長時間実行する場合ですが、
WEB開発の経験がほとんどないため、色々と調べた結果、
下記の方法が一般的なやり方で問題ないでしょうか?
①nginx、DataSnapそれぞれTimeOutを長時間に変更
②別途、長時間実行の状況を返したり、キャンセルできたりするAPIを定義
※長時間実行の状況はサーバ側でデータベースで管理
③モバイルアプリ側では長時間APIを非同期で実行し、
②の状況確認APIをタイマーで定期実行
PHPでの経験しか無いのですが、以下、どちらかの方法で対応しました。
(1)のぶ 様の方法
(2)webサーバー[nginx]のタイムアウトは長くしないで、要求があったら、別途バッチ実行[cronやタスクスケジューラー等で定期的に要求確認と実行でもいい]で処理。処理が完了したかの結果[割合でもいい]を見に行って、表示し、完了していれば表示又はダウンロード等が出来る。
タイムアウト時間は長くしたない事が多いので(2)を望まれる場合が多いです。
外していたらすいません。
mamさん
(1)の方法も実績としてあるということでよかったです。
nginxとDataSnapに負荷を与え続けることになるので、
ご紹介いただいた(2)の方法も良い気がしてきました。
色々と検討したいと思います。
WEB開発のご経験のあるmamさんのアドバイス大変参考になりました。
ご回答大変ありがとうございました。
ツイート | ![]() |