Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] memcache for GAE migration #74

Merged
merged 5 commits into from
Aug 14, 2016
Merged

[WIP] memcache for GAE migration #74

merged 5 commits into from
Aug 14, 2016

Conversation

richardimaoka
Copy link
Collaborator

@richardimaoka richardimaoka commented Aug 13, 2016

Refs #37 現状の動作には影響のない変更になっているはずです。

memcacheの動作はローカルのvagarnt, GAE local serverで確認しました。

@richardimaoka richardimaoka changed the title memcache is working on local GAE dev server, and on vagrant memcache for GAE migration, which is work in progress Aug 13, 2016
#cache = cache.Redis(**cfg.section('REDIS_INFO'))
cache = cache.Memcache(**cfg.section('MEMCACHE'))
```

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

切り替えをソースコードの変更に頼っちゃ駄目ですー。環境変数で切り替えがベターだと思います。

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

config.json に

  • "REDIS_INFO""MEMCACHE"どちらかを必ず指定しなくてはいけない
  • どちら「も」指定するとException
  • どちら「もない」と、当然Exception

というようにapp.pyを書き換えました。これでどうでしょう?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

えー。あんまり聞いたことのない処理な感じ…
2箇所(config部分と実際のオブジェクト作る部分)で同じようなチェックをしてるのも気になる。

backend = os.getenv('CACHE_BACKEND', 'Redis')
if backend == 'Redis':
    cache = cache.Redis(...)
elif backend == 'Memcached':
    cache = cache.Memcached(...)
else:
    raise Exception('Unknown backend "%s"' % backend)

でよくないです?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

なるほど、こちらのほうがきれいですね。ご指摘の通りに変えました。

環境変数はapp.yamlで指定していますので、GAEのときのみ(local dev serverも含めて)memcachedになります。

+env_variables:

  • CACHE_BACKEND: 'Memcached'

@richardimaoka richardimaoka force-pushed the richard-gae-poc branch 2 times, most recently from 11d73ce to abcc5cd Compare August 14, 2016 05:45
self.client .set(key, val, expires)

def get(self, key):
thing = self.client .get(key)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

これ、

return self.client.get(key)

でいいのでは

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

新しいコミットで変えました。

@lestrrat
Copy link
Contributor

force pushはPRの中ではしょうがない部分もあるけど、コミット分ける癖をつけておいたほうがいいです!w レビューしていくと、変更した証拠ごと消えていくのちょっと気持ち悪いw

@richardimaoka
Copy link
Collaborator Author

はい。すいません。今後は指摘に対する変更はamendでコミットしないで新たなコミットにするようにします。

(「基本1PR 1コミットで」という事を別のところで言われたので、大体どこもそんな文化なのかと…)

まだ作業中です。ready for reviewになったら再びコメントでお知らせします。

@lestrrat
Copy link
Contributor

lestrrat commented Aug 14, 2016

1コミット説は僕は眉唾ですね。よしんば1コミットだったとしても、squash mergeとかの結果でないと、意図が読めなくて辛い。(ちなみにsquash mergeも好きではないです)

@lestrrat lestrrat changed the title memcache for GAE migration, which is work in progress [WIP] memcache for GAE migration Aug 14, 2016
@richardimaoka
Copy link
Collaborator Author

ready for reviewです。

class Memcached:
def __init__(self, servers=[], debug=0):
if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine/') or os.getenv('SERVER_SOFTWARE', '').startswith('Development/'):
print "GAE memcache used"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

デバッグプリント削除お願いしますー

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

消しました。

@richardimaoka
Copy link
Collaborator Author

Ready for review againです。

@lestrrat lestrrat merged commit 69ad9e5 into master Aug 14, 2016
@lestrrat lestrrat deleted the richard-gae-poc branch August 14, 2016 09:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants