看起来我无法在第二时间获得bash UTC日期.我在悉尼所以+ 10小时的UTC时间
date
Thu Jul 3 17:28:19 WST 2014
date -u
Thu Jul 3 07:28:20 UTC 2014
Run Code Online (Sandbox Code Playgroud)
但是当我尝试转换它时,我得到的结果与UTC时间相同
date +%s
1404372514
date -u +%s
1404372515
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?
在得到回答date +%sUTC时间的答案之后,这里有关于我现在面临的问题的更多细节.
我正在尝试将文件中写入的日期与python进行比较.此日期以UTC时间以秒为单位写入.而bash date +%s并没有给我同样的东西.实际上,如果我在python中time.asctime(time.localtime(date_in_seconds_from_bash)),我得到悉尼的当前时间,而不是UTC.我不明白.
我在多个EC2实例之间共享存储时遇到问题.我将不得不经营繁重的工作,所以我需要很多实例来做这件事.一方面,我有一个连接到一个服务器实例的EBS卷.另一方面,我有一个工人实例.我创建了这个worker实例的AMI,然后我创建了这个AMI的几个实例副本.所有都在同一个VPC上运行.基本上,服务器实例正在发送作业,而工作人员正在执行作业.我希望在我的工作人员运行作业时保存一些日志文件,在共享存储中,例如:
worker_1/logfile.log
worker_2/logfile.log
什么是最好的解决方案呢?
"在使用两个服务器实现概念验证之前,在不同的可用区域中,使用ext4文件系统复制EBS卷,我们将列出不应使用GlusterFS的情况:从多个服务器(如日志)同时写入的顺序文件.如果您将日志存储在GlusterFS中,系统可能会导致严重的问题.理想的解决方案是将它们存储在本地,然后使用S3对其进行存档.如有必要,我们可以在将它们存储在S3之前或之后合并多个服务器日志.
"你无法使用s3fs部分更新文件,因此更改单个字节将重新上传整个文件".然后,如果你想做一个小的增量变化,那么它肯定没有.你不能使用s3fs - S3只是不能以你不能逐步改变文件的方式工作."
那么什么可以解决我的问题并允许我的工作人员将他们的日志文件写入共享存储?
谢谢你的帮助!
Romanzo
我是使用单元测试模块进行单元测试的新手,我需要测试一个使用线程模块的类。我并没有真正找到关于使用线程组合类的最佳方法的任何解决方案。我开始测试线程是否被调用(即活着),但后来我看到没有方法可以杀死线程。我需要一周的时间来确保线程中的代码在做它应该做的事情。我需要为此使用线程还是应该只测试函数本身?
谢谢你的帮助!
这是我的代码(有趣的部分):
class VideoLoader(Node):
# some code
def execute(self):
self.thread1 = Thread(target = run_resizer, args = (self,))
def run_resizer(node):
while True:
while not len(node.frames_to_resize):
time.sleep(0.001)
node.frames.append(resize({'height': 400, 'width': 500))
Run Code Online (Sandbox Code Playgroud) 我正在使用并行python executePipeline多次执行一个大函数().此功能也使用多处理(使用multiprocessing模块).
我使用并行python模块在我的控制台上正确显示日志消息时遇到了一些麻烦.当我不使用它时,日志消息很好地显示.
下面是它的工作原理.我有一个服务器每次从客户端收到请求时都会调用一个worker:
job = self.server.job_server.submit(func = executeWorker, args = (config, ) )
Run Code Online (Sandbox Code Playgroud)
每次有来自客户端的新请求时,都会从新线程执行此函数.然后,worker正在executePipeline使用多处理调用正在执行不同processus 的函数.
SocketServer.TCPServer我使用线程的服务器.我使用根记录器在服务器中设置了一个记录器:
self.logger = logging.getLogger()
self.logger.setLevel(logging.INFO)
self.logger.addHandler(logging.StreamHandler()
self.job_server = pp.Server(ncpus = 8) # for test
self.jobs = []
Run Code Online (Sandbox Code Playgroud)
当我运行我的服务器时,我只能从而executePipeline不是从子进程获取日志记录.此外,我只在作业结束时才记录执行管道,而不是在运行时.
这里还有工人代码.在"Executing pipeline with worker number "很好地显示在我的终端
'''
Setup logging
'''
logger = logging.getLogger()
logger.setLevel(logging.INFO)
# worker name
publicIP = socket.gethostbyname(socket.gethostname())
pid = os.getpid()
workerID = unicode(str(publicIP) + ":" + str(pid))
logger.info( "Executing pipeline with worker {}".format(workerID)) …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 ninja 编写一个模板。但我无法显示正确的缩进!我尝试了很多东西,但没有得到预期的结果。我有一本这样的字典:
videoNode = {'type': "VideoLoader",
'config': {'type': "url",
'source': "blabla",
'frameBufferSize': 50,
}
}
Run Code Online (Sandbox Code Playgroud)
我想展示类似的东西
queueVideo1:
type: VideoLoader
config:
source: blabla
type: url
frameBufferSize: 50
Run Code Online (Sandbox Code Playgroud)
但我能得到的是:
queueVideo1:
type: VideoLoader
config:
source: blabla
type: url
frameBufferSize: 50
Run Code Online (Sandbox Code Playgroud)
这是我的文件:
{%- for key, value in videoNodes.iteritems() recursive -%}
{%+ if value is mapping -%}
{{ key }}:
{{ loop(value.iteritems()) }}
{%- else -%}
{{ key }}: {{value}}
{% endif %}
{%- endfor -%}
Run Code Online (Sandbox Code Playgroud)