|
|
VineseedにZope
VineSeedにZope入れようという話
>>380 thread.start_new_thread(mailredirect,(mailTO,)) これってリダイレクト処理をスレッド立ち上げて実行するってことですよね しかもリダイレクトの先がDTMLになっている。たぶん無理だと思います。 どうしてもスレッドにするなら<dtml-sendmail>タグと同じ動作をpythonで記述して それをスレッドで立ち上げないとできないような気がします。
>> メールエラーは、DBの読み込みに時間を食いすぎかも知れない が原因なら、DBの読み込みとメール送信処理を分けないといけないんじゃないかな。
...と今日BBS始めたばかりの人間が勝手に推測しました。イケナイアルネ BBSちょっとだけ解かった気がします。明日からBBS料理しよう(ソースは醤油味で) --- 追加: 今日はいっぱい嘘書いたけど4/1だったの、今、気付いた。ハハハ
>>384 DBの読み込みに時間を食いすぎかも MailHost.py で timeout=1.0 になっているのだけど、ずいぶん短いな。 [追加] timeout は未使用でしたm(.".)m
>>384 こちらのBBS(古い)はまだ動作していません 追加ボタン押すと"Connection refused"なんてエラーが出てます DBオープンしているし、書き込みも(リロードすると)ちゃんとできているし。 DB名変えたのが良くなかったかな
kconv 入れようと手間取ってしまった。新しいメンテナになって中身が変ったかも? # こちらの環境は Zope-2.5.1, Python-2.1.3, jMailHost です。(Zope-2.6 は jaMailHostに変更しないと) --- 追加: BBSのプロパティを見たら解かりました、メール鯖設定しないと;;
メールエラーは、DBの読み込みに時間を食いすぎかも知れない。
# ポスグレならよかったかも?
>>381 スコープがたぶん違うので
うーん、用語の勉強も必要かなあ スコープってセッションの事、それとも名前空間の事でしょうか?
# [追加しました] 御免なさい、辞書で調べたら有効範囲とあった。 # 話についていけない、もっともっと頑張ろう。
この辺よく解ってないです。(質問する以前に問題ある^^;)
# メールエラーで巻き込んでしまって申し訳ないです。 # FZUG-PCにあるBBSをこちらへもってきて実験しても同じ(FZUG-PCの方が能力低いのにあちらは快適です) # threadもこれが原因と言い切れないZopeガイドに<dtml-call acquireLock><dtml-call releaseLock> # <dtml-try>の例題であるだけでこの関数の説明はないが、threadingのlck.acquireみたいなスペルを見つけた
>>381 スレッドが開始されるまで RESPONSE オブジェクトが生きているか保証がないので やはり引数で渡したほうが良さそうに一票
>>380 間違っていたらすいません。 mailredirect ファンクションの中のスコープがたぶん違うので RESPONSE を引数で渡さないといけないのではないでしょうか? たとえ globals を使ってもだめなような (追加:そんなことどこにも書いてないので間違いみたいですね。嘘付き>俺)
Squishdot のソース見たけどよく解からない 投稿のスレッドと、プログラムのスレッドがどちらも thread と名前を付けているような気がした(汗
>>379 こっちも同じような事していた。テクニカルリファレンスp269 allow_modleでthread追加 -------- addNewpyへ import thread def mailredirect(mailto): RESPOSE.redirect(mailto)
***略
thread.start_new_thread(mailredirect,(mailTO,)) -------- 送信ボタンを押すも反応なし、 リロードすると、書き込みだけある。
# まだ理解できていない^^;
<code> #!/usr/bin/python2.1 import thread import time def print_time(delay, s): while 1: time.sleep(delay) print s, time.ctime(time.time())
if __name__ == '__main__': thread.start_new_thread(print_time, (1,'A:')) thread.start_new_thread(print_time, (2,'B:')) while 1: pass </code> コンソールで試してみました。sysoutがときどき混乱するのが面白い。 # Pythonテクニカルリファレンス p270
>>377 threadは使えないのでしょうか? ありゃ、避けて通ってきた道でした。 今日はこれ勉強しよかな
P.S. Pythonスクリプトで試してみましたが、 --- Error Type: Unauthorized Error Value: You are not allowed to access start_new_thread in this context --- と出て許可されていないようです。もし新規に作成するのだったらExternalMethodが無難かもしれませんね。
|
|