我是 localstack 的新手,我复制了 docker-compose 示例。我确保将数据路径安装到我的机器中,并且我确实在主机 tmp 文件夹中看到它,此外,我在调用 s3 写入命令时看到我的数据被附加,但是在我杀死 docker-compose 并从头开始启动它之后,我看不到上一会话的数据。我需要添加一个特殊标志来重新加载数据吗?
docker-compose 文件:
version: '3.0'
services:
localstack:
image: localstack/localstack:latest
environment:
- AWS_DEFAULT_REGION=us-east-1
- EDGE_PORT=4566
- SERVICES=sqs,sns,s3
- DATA_DIR=/tmp/localstack/data
ports:
- '4566-4583:4566-4583'
volumes:
- "/tmp/localstack:/tmp/localstack"
- "/var/run/docker.sock:/var/run/docker.sock"
Run Code Online (Sandbox Code Playgroud)
运行示例:
aws --endpoint-url=http://localhost:4566 s3 mb s3://bucket-test
aws --endpoint-url=http://localhost:4566 s3 cp myfile.png s3://bucket-test
#Now this command will return the file
aws --endpoint-url=http://localhost:4566 s3 ls s3://bucket-test
# But after I will kill the docker and run docker-compose up again I will see nothing
Run Code Online (Sandbox Code Playgroud) 我正在使用scala 2.10.3,我注意到以下行为
object TestConstantScala {
final val str1 : String = "foo:" + number1
final val number1 : Int = 123
final val number2 : Int = 123
final val str2 : String = "foo:" + number2
def main(args: Array[String]){
System.out.println(str1)
System.out.println(str2)
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
foo:0
foo:123
Run Code Online (Sandbox Code Playgroud)
而我的问题是为什么订单有所作为.另外,如果我省略了Int定义,它返回的行为正常
我知道这个问题之前在这里被问过:Kafka Streaming Concurrency?
但这对我来说很奇怪。根据文档(或者也许我遗漏了一些东西),每个分区都有一个任务,意味着不同的处理器实例,并且每个任务都由不同的线程执行。但是当我测试它时,我发现不同的线程可以获得不同的处理器实例。因此,如果您想在处理器中保留任何内存状态(老式方式),则必须锁定?
示例代码:
public class SomeProcessor extends AbstractProcessor<String, JsonObject> {
private final String ID = UUID.randomUUID().toString();
@Override
public void process(String key, JsonObject value) {
System.out.println("Thread id: " + Thread.currentThread().getId() +" ID: " + ID);
Run Code Online (Sandbox Code Playgroud)
输出:
线程 ID:88 ID:26b11094-a094-404b-b610-88b38cc9d1ef
线程 ID:88 ID:c667e669-9023-494b-9345-236777e9dfda
线程 ID:88 ID:c667e669-9023-494b-9345-236777e9dfda
线程 ID:90 ID:0a43ecb0-26f2-440d-88e2-87e0c9cc4927
线程 ID:90 ID:c667e669-9023-494b-9345-236777e9dfda
线程 ID:90 ID:c667e669-9023-494b-9345-236777e9dfda
有没有办法强制每个实例线程?
在 kotlin 中有“委托装饰”模式。有没有办法在 Scala 中以优雅的方式实现它。
这是一个 kotlin 代码示例:
interface Doo{
fun a(): Unit
fun b(): Unit
}
class Goo:Doo {
override fun a() {
println("goo a")
}
override fun b() {
println("goo b")
}
}
class Moo(doo: Doo):Doo by doo{
override fun b() {
println("mooooooo")
}
}
fun main() {
val m = Moo(Goo())
m.a();m.b()
}
Run Code Online (Sandbox Code Playgroud) 我有一个看起来像这样的代码:
def call(some_id:)
verify_before = @verify.call(some_id)
return verify_before if verify_before.sucess?
did_something = @processor.call(some_id)
return did_something unless did_something.sucess?
@verify.call(some_id)
end
Run Code Online (Sandbox Code Playgroud)
我想模拟@verify,所以第一次它会返回sucess?= false,第二次调用时它会返回true
最好的方法是什么?
我是 Circleci 的新手,我试图限制我的构建仅在特定分支上工作,我尝试了下面的配置文件,但是当我包含过滤器部分时,我收到以下错误:
Your config file has errors and may not run correctly:
2 schema violations found
required key [jobs] not found
required key [version] not found
Run Code Online (Sandbox Code Playgroud)
带过滤器的配置:
version: 2
jobs:
provisioning_spark_installation_script:
working_directory: ~/build_data
docker:
- image: circleci/python:3.6.6-stretch
steps:
- setup_remote_docker:
docker_layer_caching: true
- checkout
- run: &install_awscli
name: Install AWS CLI
command: |
sudo pip3 install --upgrade awscli
- run: &login_to_ecr
name: Login to ECR
command: aws ecr get-login --region us-east-1 | sed 's/-e none//g' | bash
workflows:
version: …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个脚本来获取一些参数,其中一些参数可能为空。
Ruby 的 OptionParser 似乎不允许这样做并抛出 (OptionParser::InvalidArgument)。
代码:
require 'optparse'
options = {}
OptionParser.new do |opt|
opt.on('--might_be_empty might_be_empty', String) { |o| options[:might_be_empty] = o }
end.parse!
puts "might_be_empty: #{options[:might_be_empty]}"
Run Code Online (Sandbox Code Playgroud)
快乐流:
ruby ./for_stack.rb --might_be_empty "some_real_data"
might_be_empty: some_real_data
Run Code Online (Sandbox Code Playgroud)
当值为空时:
ruby ./for_stack.rb --might_be_empty ""
./for_stack.rb:10:in `<main>': invalid argument: --might_be_empty (OptionParser::InvalidArgument)
Run Code Online (Sandbox Code Playgroud)
我如何告诉 OptionParser 允许空字符串?
ruby ×2
scala ×2
amazon-s3 ×1
circleci-2.0 ×1
decorator ×1
docker ×1
java ×1
kotlin ×1
localstack ×1
rspec ×1