0
我想從一個CSV文件導入所有數據,並將其存儲到數據存儲以csv文件..其中app
定義deferred.defer的顯示PermanentTaskFailure:最大遞歸深度超過
__init__.py
文件。
@app.route("/import/<model>", methods=['POST'])
def import_csv(model):
reader = UsersImporter(fil, user)
reader.read()
importers.py
class UsersImporter(BaseImporter):
def read(self):
line = self.file.readline()
self.checking_delimiter_on_first_line(line)
self.file.seek(0)
reader = csv.DictReader(self.file, delimiter=self.delimiter)
try:
for row in reader:
deferred.defer(self.parse_line, row)
except:
print traceback.format_exc()
self.insert_entities()
以上代碼生成下面回溯。
INFO 2016-12-26 08:00:09,745 deferred.py:303] X-Appengine-Current-Namespace:, X-Appengine-Taskexecutioncount:0, X-Appengine-Country:ZZ, X-Appengine-Taskname:task8, X-Appengine-Taskretrycount:0, X-Appengine-Queuename:default, X-Appengine-Tasketa:1482739209.69
ERROR 2016-12-26 08:00:09,749 deferred.py:319] Permanent failure attempting to execute task
Traceback (most recent call last):
File "/home/gemini/softwares/google_appengine/google/appengine/ext/deferred/deferred.py", line 310, in post
self.run_from_request()
File "/home/gemini/softwares/google_appengine/google/appengine/ext/deferred/deferred.py", line 305, in run_from_request
run(self.request.body)
File "/home/gemini/softwares/google_appengine/google/appengine/ext/deferred/deferred.py", line 145, in run
raise PermanentTaskFailure(e)
PermanentTaskFailure: maximum recursion depth exceeded
你看,row
不是requestHandler
類的一個實例。 self.parse_line
也是BaseImporter
中定義的一種方法。