小编Ada*_*tan的帖子

在AWS Lambda上处理未初始化或错误的Redis连接

我的情景

我正在尝试利用Node.js的全局范围初始化一次数据库连接,并在调用lambda函数时使用初始化连接.

这可以节省大量资源和时间,因为打开数据库连接是一个漫长的过程:

// Global scope: Runs only once

const redis = require('redis');

const client = redis.createClient({ <HOST>, <PORT> });

// Function scope: runs per invocation
exports.handler = (event, context, callback) => {
     do-something-with-redis
};
Run Code Online (Sandbox Code Playgroud)

我的问题

可能会发生一些常见的连接错误

  • 未初始化的连接:由于Node.js是异步的,因此函数可能会在redis.create返回之前开始执行代码,因此使用未初始化的连接.
  • 超时:如果连接尝试因某种原因而超时,则该函数将具有错误的处理程序.
  • 运行时错误:如果在代码执行期间发生连接错误,则在调用之后将出现错误的处理程序.

我的问题

什么是克服AWS Lambda函数使用的全局Redis连接的错误(初始化,超时和运行时)的正确方法?

scope node.js aws-lambda

6
推荐指数
1
解决办法
367
查看次数

bash:PWD和CURDIR有什么区别?

我的问题

我使用Makefile来运行docker run目标,它需要当前工作目录作为其参数之一.

我使用$(PWD)或者$(CURDIR):

build: Dockerfile
        docker run ... <$(PWD) or $(CURDIR)>
Run Code Online (Sandbox Code Playgroud)

它们似乎产生了相同的价值.我不知道是否有一个微妙的差异,以后可以咬我,所以我想知道每个的确切定义.

我试过了什么

  • STFW
  • man make

我的问题

$(PWD)$(CURDIR)Makefile 之间有什么区别?

makefile working-directory pwd

6
推荐指数
1
解决办法
2921
查看次数

Mocha:隐藏成功测试中的 console.log 输出

我的问题

我正在使用Mocha为 Node.js 应用程序编写测试套件。我正在测试的函数console.log直接将其日志写入其中,无需任何第三方日志记录解决方案。

我不关心成功测试的日志,只关心失败的测试,而且由于我的函数非常冗长,测试输出不必要地长。

我试过什么

我的问题

如何抑制console.log通过/成功 Mocha 测试的输出?

mocha.js node.js console.log

6
推荐指数
2
解决办法
4730
查看次数

你写过很长的功能吗?如果是这样,为什么?

我正在写一个关于Linux内核中超长函数的学术项目.

为此,我正在寻找非常长(几百行代码)的实际函数的例子,你不认为编程不好(即,他们不会从分解或使用调度中受益表).

你有没有写过或看过这样的代码?你可以发布或链接到它,并解释为什么这么久?

我在这里得到了社区的惊人帮助 - 任何将被纳入项目的想法都将得到适当的记录.

谢谢,

乌迪

c code-metrics

5
推荐指数
1
解决办法
806
查看次数

Lighttpd:如何密码保护匹配正则表达式的URL

是否有一种方便的方法来密码保护与Lighttpd中的特定模式匹配的URL ?

我想过匹配正则表达式,但任何其他创造性的解决方案都会很好.

注意:我不是在寻找一种密码保护目录的方法,因为我想要保护的URL不限于某个目录结构.

亚当

url lighttpd password-protection

5
推荐指数
1
解决办法
3143
查看次数

Postgresql:在不同机器之间拆分数据库

我想对一个非常大的 PostgreSQL 8.3 数据库进行分区。引用手册

分区可以提供几个好处:

...

很少使用的数据可以迁移到更便宜、速度更慢的存储介质。

将表重新定位到其他媒体或计算机的正确方法是什么?亚当

postgresql database-partitioning

5
推荐指数
1
解决办法
3429
查看次数

postgresql 中的“date_part('epoch', now() at time zone 'UTC')”与“now() at time zone 'UTC'”时间不同

我正在为数据库(PHP/Postgresql)编写一个基于网络的前端,我需要在其中存储各种日期/时间。时间应始终以当地时间在客户端输入,并以当地时间显示。出于存储目的,我将所有日期/时间存储为整数(UNIX 时间戳)并标准化为 UTC。一个特定字段有一个限制,即不允许在将来填写时间戳,因此我尝试使用数据库约束来实现这一点...

CONSTRAINT not_future 
    CHECK (timestamp-300 <= date_part('epoch', now() at time zone 'UTC'))
Run Code Online (Sandbox Code Playgroud)

-300 是为了在浏览器和服务器之间的时间稍微不同步的情况下给予 5 分钟的余地。问题是,当提交当前时间时,这个约束总是失败。我做了测试,发现了以下内容。

在 PostgreSQL 客户端中:

SELECT now()-- 返回正确的本地时间

SELECT date_part('epoch', now())-- 返回 UTC 的 unix 时间戳(通过将值输入 PHP 中的日期函数进行测试,并更正其对我的时区的补偿)

SELECT date_part('epoch', now() at time zone 'UTC')-- 返回向西偏移两个时区的 unix 时间戳,例如我在 GMT+2,我得到一个 GMT-2 时间戳。

我显然已经发现,删除“at time zone 'UTC'”将解决我的问题,但我的问题是,如果'epoch'意味着返回一个unix时间戳,据我所知,它总是意味着UTC,为什么会UTC 时间的“纪元”是否需要更正?这是一个错误,还是我错过了这里定义/正常行为的一些内容。

php postgresql timezone datetime

5
推荐指数
1
解决办法
1万
查看次数

使用数字加密文本

项目欧拉

我最近开始解决一些项目欧拉谜语.我发现网站上的讨论论坛有点令人沮丧(大多数讨论都是关闭的,线程很差),所以我决定在启动板上发布我的Python解决方案进行讨论.

问题在于,发布这些解决方案似乎是不道德的,因为它会让其他人在不进行编程工作的情况下获得声誉,而网站则对此不屑一顾.

我的加密问题

我想加密我的答案,以便只有那些已经解决了谜语的人才能看到我的代码.逻辑关键是谜语的答案,谜语总是数字的.

为了防止对我的答案进行暴力攻击,我想找到一种需要很长时间(几秒钟)才能运行的加密算法.

你知道这样的算法吗?我想要一个Python包,我可以附加到代码,通过可能有可移植性问题的外部程序.

谢谢,

亚当

python encryption algorithm

5
推荐指数
1
解决办法
763
查看次数

Python:**kargs而不是重载?

我有一个概念性的Python设计困境.

假设我有一个City类,它代表数据库中的一个城市.该City对象可通过两种方式进行初始化:

  1. 整数(实际上是数据库中现有城市的ID)
  2. 属性(列表name,country,population,...),这将在数据库中生成一个新的城市,并检索其ID.

这意味着City对象将始终具有ID - 初始化ID或从数据库派生的新创建ID.

经典的Java方法会使构造函数重载 - 一个构造函数将获得一个int参数,另一个构造函数将获得许多强类型参数.

我在Python中找不到一种优雅的方法:

  • 我可以创建一个单一的方法的基类get_city_id,并从中获得CityFromIDCityFromNewData从它,但是这是一个很大的努力来解决这个语言空白.
  • 使用类方法似乎很尴尬.
  • 使用带有长参数列表的构造函数也很尴尬:我将两个城市ID和备选方案放在一起,并在方法中验证只有特定子集具有值.

使用**kargs似乎非常不优雅,因为构造函数的签名没有明确说明所需的输入参数,文档字符串是不够的:

class City(object):
    def __init__(self, city_id=None, *args, **kargs):
        try:
            if city_id==None:
                self.city_id=city_id
            else:
                self.city_name=kargs['name']
        except:
            error="A city object must be instanciated with a city id or with"+\
            " full city details."
            raise NameError(error)
Run Code Online (Sandbox Code Playgroud)

是否有一个Pythonic,优雅的构造函数重载解决方案?

亚当

python design-patterns overloading

5
推荐指数
1
解决办法
1565
查看次数

Python SocketServer.TCPServer 请求

我一直在玩Python的SocketServer:

#!/usr/bin/python

import SocketServer

class EchoHandler(SocketServer.BaseRequestHandler):
    def handle(self):
        data=self.request.recv(1024)
        self.request.send(data)

HOST, PORT = "localhost", 9999
server = SocketServer.TCPServer((HOST, PORT), TCPEchoServer)
server.serve_forever() 
Run Code Online (Sandbox Code Playgroud)

通过阅读源代码,我知道作为参数接收并RequestHandler.__init__()在.requestself.request

在哪里可以找到该request对象的规格?

python socketserver

5
推荐指数
1
解决办法
3066
查看次数