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

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

新規登録して質問してみよう
ただいま回答率
85.50%
CGI

CGI(Common Gateway Interface)とは、Webサーバー上でユーザプログラム動作させる仕組みのこと。また、動かす前提のプログラムをCGIと呼ぶこともあります。HTMLなどの静的な情報に限らず、プログラムの処理結果をベースにした動的情報の提供が可能です。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

1回答

414閲覧

解析処理をlistenし、ファイルアップロードを検知したときだけ処理する方法

kyoni23

総合スコア10

CGI

CGI(Common Gateway Interface)とは、Webサーバー上でユーザプログラム動作させる仕組みのこと。また、動かす前提のプログラムをCGIと呼ぶこともあります。HTMLなどの静的な情報に限らず、プログラムの処理結果をベースにした動的情報の提供が可能です。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/10/25 14:06

編集2022/01/12 10:55

前提・実現したいこと

apache2のcgiにより有効化されたpythonがあり、.pyファイルのurlにアクセスしたユーザーがPOST送信またはファイルアップロードしたデータを.pyファイルにてすばやく解析したい。

しかし、pythonのimportには5-10秒程度の時間がかかり、毎回のアクセスでimportによる遅延が無視できない。しかし、このimportするモジュールは外せない。

そこで、pyファイルを2つ用意し、外部向けのupload.pyにユーザーをアクセスさせてデータアップロードをさせて、バックで処理するimportのせいで起動が遅いanalysis.pyははじめから起動させておき、つまり、常時サーバのようにlistenさせておき、upload.pyがanalysis.pyにデータを渡すようにすれば、素早くファイルを解析できる。

発生している問題・エラーメッセージ

自分が思いつくのは、上記の機能を持つanalysis.pyを実現するために、
ループを回してwaitしてlistenするようにするべきですが、
それはsocketを使ってやるべきなのか、アプリケーションレイヤで実現可能なのか全くわかりません。できれば、socketは難しいので簡単に実装できるようにしたいです。

python http.serverで実装しようと思いましたが、そもそもwebアクセスでアップロードされたデータをサーバ内で別の処理系へ転送すれば良いので、アップロードされたファイルのあるディレクトリを常に巡回し、検知して解析したら解析済みフォルダに送ればよいのかなとも考えました。

補足情報(FW/ツールのバージョンなど)

python3.6

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

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

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

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

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

hayataka2049

2018/10/25 15:05

CGI, Apacheあたりのタグを付けた方が良いかもしれません
kyoni23

2018/10/25 15:09

タグつけました。一時ファイルにして常時起動するpyファイルにアクセスさせようと試みている途中ですが、ファイルioが心配です。クライアントのファイルアップロードはサイズが小さく、小刻みに沢山リクエストが来るので、それをさばけるかですね。
guest

回答1

0

そもそもpythonにはWSGIがあるので、それを使って書けば少なくとも「importにかかる時間」はユーザには影響しないのでは?

投稿2018/10/25 15:04

編集2018/10/25 15:06
hayataka2049

総合スコア30933

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問