質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
非同期処理

非同期処理とは一部のコードを別々のスレッドで実行させる手法です。アプリケーションのパフォーマンスを向上させる目的でこの手法を用います。

Q&A

解決済

1回答

2348閲覧

非同期処理の実装方法について

退会済みユーザー

退会済みユーザー

総合スコア0

非同期処理

非同期処理とは一部のコードを別々のスレッドで実行させる手法です。アプリケーションのパフォーマンスを向上させる目的でこの手法を用います。

0グッド

0クリップ

投稿2016/05/06 08:52

現在非同期処理の実装について調べています。

非同期処理の実装方法については下記のURLのように、クライアント側によるAjaxやサーバー側でジョブキューを用いた方法があると知りました。
http://gihyo.jp/dev/serial/01/perl-hackers-hub/001001

ここで、わからない点があるのですが非同期処理を実装する場合はクライアント側でAjax通信による非同期なAPI実行だけでも十分なのでしょうか?それともシステム全体を考慮してAjaxとサーバー側のジョブキューによる非同期実行の両方を実装することが一般的な手法なのでしょうか?

現在、両方実装するべきなのか、片方だけ実装すればよいのか分からないため質問させていただきました。質問内容じたいがおかしいかもしれませんが、ご回答お願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

何の目的でこういったことがしたいかによるので何とも言えません。
ですが、大まかに言って
数秒程度で結果を返すような処理(例えば検索結果とか)は、Ajax通信による非同期処理で十分。
処理時間が分単位以上にかかるような処理をさせたい場合は、Ajaxでは無理なのでサーバー側で非同期で処理させるような仕組みが必要かと思います。

投稿2016/05/06 09:03

CodeLab

総合スコア1939

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/05/06 09:15

回答ありがとうございます。 質問が曖昧で申し訳ありません。現在、投稿されたレビューの文章解析を利用するアプリケーションの開発を考えています。そこで、数分ほど時間のかかる解析処理を非同期にするべきだと考えて調査しておりました。 重ねて質問ですみません、、Ajax通信を行うクライアントからサーバ側の非同期処理を実行する場合は、Ajaxのリクエストでジョブをキューに登録し、サーバー側で非同期処理を行わせて、クライアントからポーリングで処理結果を逐一確認するようになるのでしょうか?
CodeLab

2016/05/06 14:21

ajaxでも通常のPOST処理でもよいですが、その場で処理要求を受け付けたというような返答をします。 処理自体をどう処理するかはいろいろありますが、処理要求を受信したプロセスの中で、別のプロセスを起動する。 もしくは処理データをDBなどに保存しておいて、あらかじめ起動しておいたプロセス、タスクの中でそのデータを読みこんで処理するか、というような感じだと思います。 何にせよ。処理系(言語とかOSとか)がわからないと具体的なやり方は答えることができません。
退会済みユーザー

退会済みユーザー

2016/05/06 23:00 編集

ご回答ありがとうございます。 処理系ですが、以下で考えております。 クライアントサイド:javaScript (AngularJS1系) サーバーサイド:JAVA (Spring4系) アプリケーションサーバ:tomcat OS:CentOS7 DB:PostgreSQL なので、以下の手順での実装が考えられました。 ①クライアント側からAjaxでジョブをキュー(PostgreSQL)に登録だけ済ます。 ②キューのジョブをポーリングで監視し専用の処理サーバ(springで実装)で逐一処理する。 ③処理結果をDBに保存する。 ④クライアント側からリクエストを送り処理結果を取得する 検討違いであれば、たびたび申し訳ありませんがご指摘お願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問