小编yda*_*coR的帖子

Java静态初始化程序是否安全?

我正在使用静态代码块来初始化我所拥有的注册表中的某些控制器.因此,我的问题是,我可以保证这个静态代码块只在首次加载类时才会被调用一次吗?我知道我无法保证何时会调用此代码块,我猜它是在Classloader首次加载它时.我意识到我可以在静态代码块中同步类,但我的猜测实际上这是怎么回事?

简单的代码示例是;

class FooRegistry {

    static {
        //this code must only ever be called once 
        addController(new FooControllerImpl());
    }

    private static void addController(IFooController controller) { 
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

或者我应该这样做;

class FooRegistry {

    static {
        synchronized(FooRegistry.class) {
            addController(new FooControllerImpl());
        }
    }

    private static void addController(IFooController controller) {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

java static multithreading synchronization static-initializer

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

AWS OpsWorks与AWS Beanstalk对比AWS CloudFormation?

我想知道使用AWS OpsWorks与AWS Beanstalk和AWS CloudFormation有什么优缺点?

我感兴趣的是一个可以自动调整以处理任何大量同时Web请求的系统(从每分钟1000个请求到1000万个rpm),包括一个可以自动扩展的数据库层.

而不是每个应用程序都有一个单独的实例,理想情况下我想有效地共享一些硬件资源.在过去,我主要使用EC2实例+ RDS + Cloudfront + S3

堆栈系统将在我们从Heroku迁移的rails应用程序上托管一些高流量ruby,还有一些python/django应用程序和一些PHP应用程序.

提前致谢.

ruby-on-rails amazon-web-services aws-cloudformation aws-opsworks amazon-elastic-beanstalk

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

Django模板和变量属性

我正在使用Google App Engine和Django模板.
我有一个表,我想显示对象看起来像:

Object Result:
    Items = [item1,item2]
    Users = [{name='username',item1=3,item2=4},..]
Run Code Online (Sandbox Code Playgroud)

Django模板是:

<table>
<tr align="center">
    <th>user</th>
    {% for item in result.items %}
        <th>{{item}}</th>
    {% endfor %}
</tr>

{% for user in result.users %}
    <tr align="center"> 
        <td>{{user.name}}</td>
        {% for item in result.items %}
            <td>{{ user.item }}</td>
        {% endfor %}
    </tr>
{% endfor %}
</table>
Run Code Online (Sandbox Code Playgroud)

现在,Django文档指出,当它看到一个.在变量中
它尝试了几个东西来获取数据,其中一个是字典查找,这正是我想要但似乎没有发生......

python django google-app-engine

34
推荐指数
3
解决办法
2万
查看次数

如何将JavaScript添加到ASP.NET MVC视图?

我有一个简单的视图,我希望在此视图中添加一个JQuery DatePicker JavaScript(而不是每个视图,通过母版页).

我不确定这样做的最佳方法是什么.

其次,我意识到我的JavaScript加载的位置/时间.我是YSlow的粉丝,它建议我在页面底部添加任何脚本,我这样做.

那么,我怎么能两个都做?

这是观点:

<%@ Page
    Language="C#" 
    MasterPageFile="~/Views/Shared/Site.Master" 
    Inherits="System.Web.Mvc.ViewPage" %>

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">

    <h2>Index</h2>

    <% using (Html.BeginForm()) {%>

    <p>
        <label for="StartDate">Start Date:</label>
        <!-- JQuery DatePicker to be added, here. -->
    </p>
    <% } %>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)

javascript asp.net-mvc jquery views

33
推荐指数
3
解决办法
3万
查看次数

以ansible条件评估返回代码

我正在努力自动执行需要将最新版本的软件附加到文件的任务.我不想为同一版本多次这样做.

它查看以下示例文件:

var software releases = new Array(
    "4.3.0",
    "4.4.0",
    "4.5.0",
    "4.7.0",
    "4.8.0",
    "4.11.0",
    "4.12.1",
    "4.14.0",
    "4.15.0",
    "4.16.0",
);
Run Code Online (Sandbox Code Playgroud)

默认的main.yml会传递类似的东西

VERSION: 4.16.2
Run Code Online (Sandbox Code Playgroud)

- name: register version check
  shell: cat /root/versions.js | grep -q {{VERSION}}
  register: current_version

- debug: msg="The registered variable output is {{ current_version.rc }}"

- name: append to versions.js
  lineinfile:
    dest: /root/versions.js
    regexp: '^\);'
    insertbefore: '^#\);'
    line: "    \"{{VERSION}}\",\n);"
    owner: root
    state: present
    when: current_version.rc == 1
Run Code Online (Sandbox Code Playgroud)

问题:调试消息正在评估current_version.rc并显示基于grep命令输出的布尔值,但我无法在when条件中重复使用它来确定是否应该运行任务.

编辑:输出:

PLAY [localhost] **************************************************************

GATHERING FACTS *************************************************************** …
Run Code Online (Sandbox Code Playgroud)

ansible

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

Ansible远程模板

我有存储在项目存储库中的配置文件的模板.我想要做的是在从存储库克隆项目之后,使用Ansible的模板模块在远程服务器上使用该模板创建配置文件.

查看模板模块的文档,似乎该src属性仅支持本地文件.

我想避免使用我的Ansible playbook存储配置模板,因为我更有意义的是将这些项目特定模板保存在项目存储库中.

我可以使用模板模块的替代方案吗?

ansible ansible-playbook

19
推荐指数
1
解决办法
7012
查看次数

一个Vagrantfile中的多个VM.我可以为每个人设置不同的内存大小吗?

config.vm.define :web do |web_config|
    web_config.vm.box = "saucy"
    web_config.vm.host_name = "web"
    web_config.vm.network "private_network", ip:"192.168.100.10"
end

config.vm.define :db do |db_config|
    db_config.vm.box = "saucy"
    db_config.vm.host_name = "db"
    db_config.vm.network "private_network", ip:"192.168.100.20"
end

config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--memory", "1024"]
    vb.customize ["modifyvm", :id, "--cpus", "2"]
end
Run Code Online (Sandbox Code Playgroud)

我配置了两个VM,'db'和'web'.我可以为不同的VM设置不同的内存大小吗?

virtualbox vagrant vagrantfile

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

如何在库中存储ansible_become_pass以及如何使用它?

我是ansible的新手,我正在使用一个非常简单的剧本来发布sudo apt-get updatesudo apt-get upgrade在几台服务器上.

这是我正在使用的剧本:

---

- name: Update Servers
  hosts: my-servers
  become: yes
  become_user: root
  tasks:
    - name: update packages
      apt: update_cache=yes

    - name: upgrade packages
      apt: upgrade=dist
Run Code Online (Sandbox Code Playgroud)

这是我~/.ansible/inventory/hosts文件的摘录:

[my-servers]
san-francisco ansible_host=san-francisco ansible_ssh_user=user ansible_become_pass=<my_sudo_password_for_user_on_san-francisco>
san-diego     ansible_host=san-diego     ansible_ssh_user=user ansible_become_pass=<my_sudo_password_for_user_on_san-diego>
Run Code Online (Sandbox Code Playgroud)

如果我启动剧本,这就是我得到的:

$ ansible-playbook update-servers-playbook.yml                                                                                                                                     

PLAY [Update Servers] **********************************************************

TASK [setup] *******************************************************************
ok: [san-francisco]
ok: [san-diego]

TASK [update packages] *********************************************************
ok: [san-francisco]
ok: [san-diego]

TASK [upgrade packages] ********************************************************
ok: [san-francisco]
ok: [san-diego]

PLAY RECAP ********************************************************************* …
Run Code Online (Sandbox Code Playgroud)

security ansible ansible-vault

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

用Terraform进行局部试验

我们正在研究Terraform作为管理基础设施的一种方式,它看起来非常有趣.

但是,目前我们的公司代理/防火墙terraform apply由于安全限制而导致失败.

在我们等待解决这些网络问题的同时,有什么方法可以在本地试验Terraform而无需连接到Azure或AWS?也许有Virtual Box?

terraform

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

Ansible在角色之间共享文件

Ansible Best Practices描述了每个角色都包含具有此规则所需的所有文件的文件目录.

在我的情况下,我有不同的角色,共享相同的文件.但我不能在每个角色中复制这些文件,因为这些文件没有任何一个来源,如果其中一个文件发生编辑,对每个角色进行此更改将变得很繁琐.

我做的一个解决方案是创建另一个文件夹并使用绝对或相对路径引用它.这是最好的方式吗?

我的ansible目录看起来像这样

play.yml
roles/
  web/
    tasks/
    files/
      common-1
      common-2
      other-multiple-files
  role-2/
    tasks/
    files/
      common-1
      common-2
      other-multiple-files
  role-3/
    tasks/
      files/
        common-2
  role-4/
    tasks/
      files/
        common-1
Run Code Online (Sandbox Code Playgroud)

ansible

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