sixcodes / brandenburg Goto Github PK
View Code? Open in Web Editor NEWPaused for now.
License: BSD 3-Clause "New" or "Revised" License
Paused for now.
License: BSD 3-Clause "New" or "Revised" License
https://www.connectionstrings.com/sql-server-2012-data-types-reference/
[ ] - Codecov
[ ] - Typing Hint
[ ] - Black
master
.The number of redis connections is over the limit (256) during the receipt of POSTS of new tables through the batch of endpoints (https://brandenburg.orbia.ag/v1/import/batch/) and push (https://brandenburg.orbia.ag/v1/import/push/)
The problem occurs after a sequence of calls to the batch endpoint, in which the following exceptions begin to appear:
Mar 9 02:00:55 brandenburg-prod app[web] info File "./brandenburg/toolbox/_backends/redis.py", line 58, in set_cache
Mar 9 02:00:55 brandenburg-prod app[web] info with await cls.__instance.conn as cache:
Mar 9 02:00:55 brandenburg-prod app[web] info TypeError: object NoneType can't be used in 'await' expression
Mar 9 02:12:30 brandenburg-prod app[web] info File "./brandenburg/toolbox/_backends/redis.py", line 49, in __disconnect
Mar 9 02:12:30 brandenburg-prod app[web] info cls.__instance.conn.close()
Mar 9 02:12:30 brandenburg-prod app[web] info AttributeError: 'NoneType' object has no attribute 'close'
These exceptions end up throwing ERROR: Exception in ASGI application
in LogDNA and a while after errors in set_cache
and __disconnect
start to appear
exceptions aioredis.errors.MaxClientsError: ERR max number of clients reached
.
The batch endpoint should receive multiple requests without errors in the _set_last_run
function
The batch endboint throws exceptions to the _set_last_run
function related to methods
set_cache
and __disconnect
of the RedisBackend
class.
Mar 9 02:00:55 brandenburg-prod app[web] INFO INFO: 34.236.239.193:0 - "POST /v1/import/batch/ HTTP/1.1" 500 Internal Server Error
Mar 9 02:00:55 brandenburg-prod app[web] ERROR ERROR: Exception in ASGI application
Mar 9 02:00:55 brandenburg-prod app[web] info Traceback (most recent call last):
Mar 9 02:00:55 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/uvicorn/protocols/http/httptools_impl.py", line 390, in run_asgi
Mar 9 02:00:55 brandenburg-prod app[web] info result = await app(self.scope, self.receive, self.send)
Mar 9 02:00:55 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/uvicorn/middleware/proxy_headers.py", line 45, in __call__
Mar 9 02:00:55 brandenburg-prod app[web] info return await self.app(scope, receive, send)
Mar 9 02:00:55 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/fastapi/applications.py", line 190, in __call__
Mar 9 02:00:55 brandenburg-prod app[web] info await super().__call__(scope, receive, send)
Mar 9 02:00:55 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/starlette/applications.py", line 111, in __call__
Mar 9 02:00:55 brandenburg-prod app[web] info await self.middleware_stack(scope, receive, send)
Mar 9 02:00:55 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/starlette/middleware/errors.py", line 181, in __call__
Mar 9 02:00:55 brandenburg-prod app[web] info raise exc from None
Mar 9 02:00:55 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/starlette/middleware/errors.py", line 159, in __call__
Mar 9 02:00:55 brandenburg-prod app[web] info await self.app(scope, receive, _send)
Mar 9 02:00:55 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/starlette/middleware/httpsredirect.py", line 19, in __call__
Mar 9 02:00:55 brandenburg-prod app[web] info await self.app(scope, receive, send)
Mar 9 02:00:55 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/starlette/middleware/cors.py", line 78, in __call__
Mar 9 02:00:55 brandenburg-prod app[web] info await self.app(scope, receive, send)
Mar 9 02:00:55 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/starlette/exceptions.py", line 82, in __call__
Mar 9 02:00:55 brandenburg-prod app[web] info raise exc from None
Mar 9 02:00:55 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/starlette/exceptions.py", line 71, in __call__
Mar 9 02:00:55 brandenburg-prod app[web] info await self.app(scope, receive, sender)
Mar 9 02:00:55 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/starlette/routing.py", line 566, in __call__
Mar 9 02:00:55 brandenburg-prod app[web] info await route.handle(scope, receive, send)
Mar 9 02:00:55 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/starlette/routing.py", line 227, in handle
Mar 9 02:00:55 brandenburg-prod app[web] info await self.app(scope, receive, send)
Mar 9 02:00:55 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/starlette/routing.py", line 41, in app
Mar 9 02:00:55 brandenburg-prod app[web] info response = await func(request)
Mar 9 02:00:55 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/fastapi/routing.py", line 189, in app
Mar 9 02:00:55 brandenburg-prod app[web] info dependant=dependant, values=values, is_coroutine=is_coroutine
Mar 9 02:00:55 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/fastapi/routing.py", line 135, in run_endpoint_function
Mar 9 02:00:55 brandenburg-prod app[web] info return await dependant.call(**values)
Mar 9 02:00:55 brandenburg-prod app[web] info File "./brandenburg/routers/imports.py", line 43, in import_batch
Mar 9 02:00:55 brandenburg-prod app[web] info result, processed = await BatchService.execute(batch, batch.service_id, "batch")
Mar 9 02:00:55 brandenburg-prod app[web] info File "./brandenburg/services/batch.py", line 22, in execute
Mar 9 02:00:55 brandenburg-prod app[web] info await cls._set_last_ran(batch)
Mar 9 02:00:55 brandenburg-prod app[web] info File "./brandenburg/services/batch.py", line 45, in _set_last_ran
Mar 9 02:00:55 brandenburg-prod app[web] info await cache.set_cache(key=table, value=last_updated_at, ttl=-1)
Mar 9 02:00:55 brandenburg-prod app[web] info File "./brandenburg/toolbox/_backends/redis.py", line 58, in set_cache
Mar 9 02:00:55 brandenburg-prod app[web] info with await cls.__instance.conn as cache:
Mar 9 02:00:55 brandenburg-prod app[web] info TypeError: object NoneType can't be used in 'await' expression
Mar 9 02:12:30 brandenburg-prod app[web] INFO INFO: 34.236.239.193:0 - "POST /v1/import/batch/ HTTP/1.1" 500 Internal Server Error
Mar 9 02:12:30 brandenburg-prod app[web] ERROR ERROR: Exception in ASGI application
Mar 9 02:12:30 brandenburg-prod app[web] info Traceback (most recent call last):
Mar 9 02:12:30 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/uvicorn/protocols/http/httptools_impl.py", line 390, in run_asgi
Mar 9 02:12:30 brandenburg-prod app[web] info result = await app(self.scope, self.receive, self.send)
Mar 9 02:12:30 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/uvicorn/middleware/proxy_headers.py", line 45, in __call__
Mar 9 02:12:30 brandenburg-prod app[web] info return await self.app(scope, receive, send)
Mar 9 02:12:30 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/fastapi/applications.py", line 190, in __call__
Mar 9 02:12:30 brandenburg-prod app[web] info await super().__call__(scope, receive, send)
Mar 9 02:12:30 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/starlette/applications.py", line 111, in __call__
Mar 9 02:12:30 brandenburg-prod app[web] info await self.middleware_stack(scope, receive, send)
Mar 9 02:12:30 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/starlette/middleware/errors.py", line 181, in __call__
Mar 9 02:12:30 brandenburg-prod app[web] info raise exc from None
Mar 9 02:12:30 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/starlette/middleware/errors.py", line 159, in __call__
Mar 9 02:12:30 brandenburg-prod app[web] info await self.app(scope, receive, _send)
Mar 9 02:12:30 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/starlette/middleware/httpsredirect.py", line 19, in __call__
Mar 9 02:12:30 brandenburg-prod app[web] info await self.app(scope, receive, send)
Mar 9 02:12:30 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/starlette/middleware/cors.py", line 78, in __call__
Mar 9 02:12:30 brandenburg-prod app[web] info await self.app(scope, receive, send)
Mar 9 02:12:30 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/starlette/exceptions.py", line 82, in __call__
Mar 9 02:12:30 brandenburg-prod app[web] info raise exc from None
Mar 9 02:12:30 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/starlette/exceptions.py", line 71, in __call__
Mar 9 02:12:30 brandenburg-prod app[web] info await self.app(scope, receive, sender)
Mar 9 02:12:30 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/starlette/routing.py", line 566, in __call__
Mar 9 02:12:30 brandenburg-prod app[web] info await route.handle(scope, receive, send)
Mar 9 02:12:30 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/starlette/routing.py", line 227, in handle
Mar 9 02:12:30 brandenburg-prod app[web] info await self.app(scope, receive, send)
Mar 9 02:12:30 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/starlette/routing.py", line 41, in app
Mar 9 02:12:30 brandenburg-prod app[web] info response = await func(request)
Mar 9 02:12:30 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/fastapi/routing.py", line 189, in app
Mar 9 02:12:30 brandenburg-prod app[web] info dependant=dependant, values=values, is_coroutine=is_coroutine
Mar 9 02:12:30 brandenburg-prod app[web] info File "/app/.heroku/python/lib/python3.7/site-packages/fastapi/routing.py", line 135, in run_endpoint_function
Mar 9 02:12:30 brandenburg-prod app[web] info return await dependant.call(**values)
Mar 9 02:12:30 brandenburg-prod app[web] info File "./brandenburg/routers/imports.py", line 43, in import_batch
Mar 9 02:12:30 brandenburg-prod app[web] info result, processed = await BatchService.execute(batch, batch.service_id, "batch")
Mar 9 02:12:30 brandenburg-prod app[web] info File "./brandenburg/services/batch.py", line 22, in execute
Mar 9 02:12:30 brandenburg-prod app[web] info await cls._set_last_ran(batch)
Mar 9 02:12:30 brandenburg-prod app[web] info File "./brandenburg/services/batch.py", line 45, in _set_last_ran
Mar 9 02:12:30 brandenburg-prod app[web] info await cache.set_cache(key=table, value=last_updated_at, ttl=-1)
Mar 9 02:12:30 brandenburg-prod app[web] info File "./brandenburg/toolbox/_backends/redis.py", line 61, in set_cache
Mar 9 02:12:30 brandenburg-prod app[web] info await cls.__disconnect()
Mar 9 02:12:30 brandenburg-prod app[web] info File "./brandenburg/toolbox/_backends/redis.py", line 49, in __disconnect
Mar 9 02:12:30 brandenburg-prod app[web] info cls.__instance.conn.close()
Mar 9 02:12:30 brandenburg-prod app[web] info AttributeError: 'NoneType' object has no attribute 'close'
Heroku Dyno (standard 2X) x2
Heroku Addon Redis Enterprise Cloud 100MB
/notify/
Request Body
"contact": "",
"data": {},
"by": "",// [sms, whatsapp, email]
"template_name": "",
"locale": ""
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.