This is an automated email from the ASF dual-hosted git repository. shuaijinchao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/apisix-python-plugin-runner.git
commit ee68ec6bc27f7161e19ce49f08b7ebb9b7dccfff Author: Janko <[email protected]> AuthorDate: Tue Aug 3 10:39:16 2021 +0800 feat: add plugin cache module for runner. --- src/runner/plugin/cache.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/src/runner/plugin/cache.py b/src/runner/plugin/cache.py new file mode 100644 index 0000000..d21665c --- /dev/null +++ b/src/runner/plugin/cache.py @@ -0,0 +1,38 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +from minicache import cache + +RUNNER_CACHE_TOKEN = "RUNNER:CACHE:TOKEN" +RUNNER_CACHE_ENTRY = "RUNNER:CACHE:ENTRY" + + +def generateToken() -> int: + token = cache.get(RUNNER_CACHE_TOKEN, 0) + token = token + 1 + cache.update(RUNNER_CACHE_TOKEN, token) + return token + + +def setConfigByToken(token: int, configs: dict) -> bool: + cache_key = "%s:%s" % (RUNNER_CACHE_ENTRY, token) + cache.update(cache_key, configs) + return cache.has(cache_key) + + +def getConfigByToken(token: int): + cache_key = "%s:%s" % (RUNNER_CACHE_ENTRY, token) + return cache.get(cache_key, {})
