2009年12月13日日曜日

Task Queue, Transaction

Scheduled Tasks With Cron for Pythonhttp://code.google.com/intl/en/appengine/docs/python/config/cron.html
  • Task Queue戦記 - スティルハウスの書庫
  • TaskQueueをローカルでデバッグする方法 - ひがやすを blog
  • Offline Processing on App Engine: a Look Aheadを見たメモ - スティルハウスの書庫

    タスク Task -- http://code.google.com/intl/ja/appengine/docs/python/taskqueue/overview.html



    やはり追加テーブルとのトランザクションはできない
    けれども、子孫となるテーブルにすればできないこともない

    key_name ="http://pages.google.com/edit/kwin786/Impressionnism01_s.jpg-2"
    r = db.get(db.Key.from_path('Imgmap',key_name))
    db.run_in_transaction(update_imgmap,r.key())

    def update_imgmap(key):
    r = db.get(key)
    r.regimgmapcontenturl = "1"
    s = ImgmapContentUrl(
        key_name=r.content_url,
    #   parent=key,
       content_url = r.content_url)
    s.put()
    r.put()

    Traceback (most recent call last): File "C:\Program Files\Google\google_appengine\google\appengine\ext\webapp\__init__.py", line 507, in __call__ handler.get(*groups) File "C:\google\museum-in-cloud\cron.py", line 70, in get db.run_in_transaction(update_imgmap,r.key()) File "C:\Program Files\Google\google_appengine\google\appengine\api\datastore.py", line 1904, in RunInTransaction DEFAULT_TRANSACTION_RETRIES, function, *args, **kwargs) File "C:\Program Files\Google\google_appengine\google\appengine\api\datastore.py", line 2001, in RunInTransactionCustomRetries result = function(*args, **kwargs) File "C:\google\museum-in-cloud\cron.py", line 148, in update_imgmap s.put() File "C:\Program Files\Google\google_appengine\google\appengine\ext\db\__init__.py", line 797, in put return datastore.Put(self._entity) File "C:\Program Files\Google\google_appengine\google\appengine\api\datastore.py", line 198, in Put tx = _MaybeSetupTransaction(req, keys) File "C:\Program Files\Google\google_appengine\google\appengine\api\datastore.py", line 2090, in _MaybeSetupTransaction raise _DifferentEntityGroupError(expected_group, group) File "C:\Program Files\Google\google_appengine\google\appengine\api\datastore.py", line 2122, in _DifferentEntityGroupError b.kind(), id_or_name(b))) BadRequestError: Cannot operate on different entity groups in a transaction: (kind=u'Imgmap', name=u'http://pages.google.com/edit/kwin786/Impressionnism01_s.jpg-2') and (kind=u'ImgmapContentUrl', name=u'http://pages.google.com/edit/kwin786/Impressionnism01_s.jpg').

  • 2009年9月18日金曜日

    Twitter

    EmbedはQueyを複数指定しするとLoadingのままとなって、NGのようです。











    2009年8月4日火曜日

    Index 復活


    ようやく復活

    properties: [] 

    このインデックスは削除しないように注意

    diff は一切表示なし。
    C:\google>appcfg.py vacuum_indexes blog-editor
    Fetching index definitions diff.

    C:\google>

    エラーログの内容を index.yaml に素直に追加するのが一番
    - kind: Img
    properties:
    - name: open_mode
    - name: category
    direction: desc
    - name: modified
    direction: desc

    2009年8月1日土曜日

    2009年7月31日金曜日

    Google App Engine : Index Error

    どうやらまた同じようなミスをしてしまった

    http://groups.google.co.jp/group/google-app-engine-japan/msg/2cc3dbed1cbb8ccf


    このパターンだと思われ、1日待ってみる必要がある。
    index.yaml の該当部分を削除して vacume_indexes しても Status が Error の
    ままで Deleting にならず、削除が開始されない。 結果、 Error が消えないのでどうしようもない。

    ローカル: 2009年7月21日(火) 午前11:52
    件名: Re: can not force delete a index with error!

    I wasn't able to delete the "Error" status index for a day, the next
    day when I tried vacuum_indexes it got deleted without any problem.

    The fist day I tried many times, but the index status was "Error" it
    didn't change to "Deleting...". It was kind of stuck at the error
    status.



    関連

    Google App Engineで、index.yamlに記述したインデックスが正しく生成されないときの対処法
    http://akisute.com/2009/05/google-app-engineindexyaml.html

    GAE(google app engine) インデックスのトラブルの顛末
    http://osima.jp/blog/gae-index-in-trouble.html

    Swift UI チュートリアル Loading watchOS が終わらない?

    Loading watchOS が終わらない? ディスク容量の残量が少ないので不要なシュミレーターを削除したとこころ watchOSのものが全部なくなってしまっていた。 WatchOS を削除して再度インストールしても復活せず。 Create a new simulator で ...