1

celery.decoratorsインポートタスクから

from celery.decorators import task
@task()
def add(x, y):
    r = open("./abc.txt","w")
    r.write("sdf")
    r.close()
    return x + y

それが私の tasks.py ファイルです。

>>> import tasks
>>> r = tasks.add.delay(3,5)
>>> r.result
8

ご覧のとおり、関数は機能します。ただし、ファイルは作成されません。なんで?

許可の問題が発生する可能性があるため、複数のファイル パスを変更しようとしました。しかし運がない。

4

3 に答える 3

2

ファイルが書き込まれていない場合は、例外が発生するため、関数が完了できない可能性があります。

この関数は 8 を返しているので、ファイルがどこかに書き込まれていることになります。

おそらく、ファイルは、期待しているディレクトリとは異なるディレクトリに書き込まれています

私が考えることができる他の唯一の可能性は、実行されている追加機能があなたがここに示したものではないということです

于 2010-12-29T04:18:32.180 に答える
1

問題は、モジュールをインポートしてこれを実行していることだと思います。ファイルパスの.は、現在の作業ディレクトリではなく、モジュールが存在する場所に相対的です。フルパス名を付けてみてください。

それでも問題が解決しない場合は、スクリプトを実行している場所とls -laそのディレクトリを正確に示してください。それでも異常がなければ。する

find / -name abc.txt

于 2010-12-29T04:18:57.187 に答える
1
  1. 作業ディレクトリは、予期したものではない可能性があります。
  2. 複数のホストを使用する場合、タスクは別のホストで実行される場合があります。
于 2010-12-30T17:58:05.110 に答える