小编rti*_*dru的帖子

Docker/Kubernetes + Gunicorn /芹菜 - 多个工人与复制品?

我想知道使用gunicorn和芹菜部署容器化Django应用程序的正确方法是什么.

具体来说,这些过程中的每一个都具有垂直缩放的内置方式,workers用于炮弹和concurrency芹菜.然后是Kubernetes使用缩放方法replicas

还有这种将工人设置为与CPU的某些功能相等的概念.Gunicorn建议

每个核心2-4名工人

但是,我很困惑这对于K8而言是什么,其中CPU是可分割的共享资源 - 除非我使用resoureceQuotas.

我想了解最佳实践是什么.我能想到三个选项:

  • 有单独的工人为gunicorn和1并用于芹菜,并使用复制品进行扩展吗?(水平缩放)
  • 使用内部缩放(垂直缩放)在单个副本部署中运行gunicorn和芹菜.这意味着分别设置相当高的工人和并发值.
  • 1到2之间的混合方法,我们运行gunicorn和芹菜,工作者和并发的值很小(比如说2),然后使用K8s Deployment副本进行水平扩展.

关于此问题,有一些问题,但没有一个提供深入/深思熟虑的答案.如果有人可以分享他们的经验,我将不胜

注意:我们使用默认worker_class sync为Gunicorn

django celery gunicorn docker kubernetes

30
推荐指数
2
解决办法
3241
查看次数

更改屏幕方向 - VirtualBox上的Android 3.2

我在Virtual Box上运行android 3.2 RC2 eeepc.操作系统将其视为平板电脑,并通过delfault将方向设置为横向.如何手动更改横向和纵向之间的方向?

有没有办法通过Android操作系统中的命令行执行此操作?是否有像AVD Manager的模拟器那样的快捷键?我尝试了Numlock 7和Ctrl F11.没用 请帮助

我使用VM来运行我正在构建的应用程序.我的应用程序有很多视图,大多数都设置为纵向和横向.一个视图严格设置为纵向.当我启动它时,整个操作系统变成了肖像.如何恢复横向模式?

sdk android eeepc virtualbox orientation

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

Django Abstract Models使用下划线设置related_name

我有一个抽象基础模型和2个继承模型,我需要强制related_name采用特定格式.

class Animal(models.Model):
    legs = models.IntegerField(related_name='%(class)s')
    habitat = models.ForeignKey(Habitats, related_name='%(class)s')

class DogAnimal(BaseModel):
    name = models.CharField(max_length=20, related_name='dog_animal')

class CatAnimal(BaseModel):
    name = models.CharField(max_length=20, related_name='cat_animal')
Run Code Online (Sandbox Code Playgroud)

通常,related_name ='%(class)s'将分别导致catanimal和doganimal.

我需要像这样的强调值:dog_animal,cat_animal

以下是"为什么"我需要这样做 - 遗产.这些模型没有使用基类组织 - 因此最初指定的related_name是'dog_animal'和'cat_animal'.改变这将是很多工作.

python django django-models django-related-manager

9
推荐指数
2
解决办法
978
查看次数

在Django Graphene Relay中启用基于PK的过滤,同时保留全局ID

问题

我在我们的GraphQL服务器上将django-graphene与Relay一起使用。该实现在类中强加了全局ID要求,该要求覆盖并隐藏Django的ID字段graphene.relay.Node

结果,我可以这样查询:

{
    allBatches(id:"QmF0Y2hOb2RlOjE=") {
    edges {
      node {
        id
        pk
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

并获得以下响应:

{
  "data": {
    "allBatches": {
      "edges": [
        {
          "node": {
            "id": "QmF0Y2hOb2RlOjE=",
            "pk": 1
          }
        }
      ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,我失去的是能够按对象本身的原始ID(或PK)字段进行过滤的功能:

{
    allBatches(id:1) {
    edges {
      node {
        id
        pk
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

实际上,我根本无法通过ID过滤对象。我可以想到两种可能的解决方法:1.防止django-graphene-relay劫持和遮蔽该id字段,也许强迫它使用其他字段名称,例如gid 2.查找一种将其包括pk为特殊字段的方法可作为属性和过滤器使用

解决方案1

我在1上没有取得任何进展,因为看起来django-graphene(似乎是中继标准)强加了对该字段的限制id。我看到它id已在多个地方用作魔术字符串,并且似乎没有改变字段名称的标准方法。

解决方案2

在2上,我可以使该属性Mixin像这样工作:

class PKMixin(object): …
Run Code Online (Sandbox Code Playgroud)

python django relay graphql graphene-python

9
推荐指数
1
解决办法
688
查看次数

使用CAST或STR_TO_DATE链接JSON_EXTRACT失败

我正在尝试从MySQL中的JSONFIELD"数据"中提取日期时间.

但是,如果我执行简单的JSON_EXTRACT,则返回字段类型是JSON.

mysql> select JSON_EXTRACT(data, "$.new_time") from analytics limit 10;
+----------------------------------+
| JSON_EXTRACT(data, "$.new_time") |
+----------------------------------+
| NULL                             |
| "2016-09-30T04:00:00+00:00"      |
| "2016-09-29T05:30:00+00:00"      |
| NULL                             |
| "2016-10-01T05:30:00+00:00"      |
| "2016-09-27T23:00:00+00:00"      |
| NULL                             |
| "2016-09-23T01:30:00+00:00"      |
| "2016-09-23T04:00:00+00:00"      |
| "2016-09-27T01:30:00+00:00"      |
+----------------------------------+
Run Code Online (Sandbox Code Playgroud)

我想将其转换为MySQL DATETIME.但如果我链接JSON_EXTRACT和STR_TO_DATETIME,我会得到所有NULL值:

mysql> select STR_TO_DATE(JSON_EXTRACT(data, "$.new_time") ,"%Y-%m-%d") from analytics_calendaranalytics limit 10;
+-----------------------------------------------------------+
| STR_TO_DATE(JSON_EXTRACT(data, "$.new_time") ,"%Y-%m-%d") |
+-----------------------------------------------------------+
| NULL                                                      |
| NULL                                                      |
| NULL                                                      |
| NULL                                                      |
| NULL                                                      | …
Run Code Online (Sandbox Code Playgroud)

mysql sql database json mysql-json

7
推荐指数
1
解决办法
6493
查看次数

计算链表中的值的总和

我最近在接受采访时得到了一个编程问题.

有2个链接列表.每个节点存储1到9的值(表示数字的一个索引).因此123将是链接列表1-> 2-> 3

任务是创建一个函数:

static LinkedListNode getSum(LinkedListNode a, LinkedListNode b)

这将返回2个链表列表中的值的总和.

如果阵列a是:1-> 2-> 3-> 4

阵列b为:5-> 6-> 7-> 8

答案应该是:6-> 9-> 1-> 2

这是我的算法:

遍历a和b中的每个节点,将值作为整数获取并添加它们.使用这些值创建新的链接列表.

这是代码:它大概是我假设的复杂度为O(n).一旦通过每个数组输入并一次创建输出数组.

有什么改进?更好的算法......或代码改进

public class LinkedListNode {
        LinkedListNode next;
        int value;

    public LinkedListNode(int value) {
        this.value = value;
        this.next = null;
    }

    static int getValue(LinkedListNode node) {
        int value = node.value;
        while (node.next != null) {
            node = node.next;
            value = value * 10 + node.value;
        }
        return value;
    }

    static LinkedListNode getSum(LinkedListNode a, LinkedListNode …
Run Code Online (Sandbox Code Playgroud)

java algorithm linked-list

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

无法在AWS Lambda上安装pandas

我正在尝试在Amazon Lambda实例上安装和运行pandas .我使用推荐的zip方法打包我的代码文件model_a.py和相关的python库(pip install pandas -t /path/to/dir/)并将zip上传到Lambda.当我尝试运行测试时,这是我收到的错误消息:

无法导入模块'model_a':C扩展名:/var/task/pandas/hashtable.so:未定义符号:未构建PyFPE_jbuf.如果要从源目录导入pandas,可能需要先运行'python setup.py build_ext --inplace'来构建C扩展.

看起来像pandas安装程序附带的hashtable.so中定义的变量中的错误.谷歌搜索没有发现任何相关的文章.有一些提到numpy安装失败,但没有具体.非常感谢您排除故障的任何帮助!谢谢.

python numpy amazon-web-services pandas aws-lambda

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

在清除sys.path之后,python如何进行导入 - 导入优先级

我有一个名为Queue的python模块与python中的默认队列冲突.

在尝试强制导入默认队列时,我试图简单地清除sys.path.

我理解从sys.path查找导入.但是在我清除syspath之后,Python似乎仍然能够导入模块.

请解释一下!

In [26]: sys.path
Out[26]: []
In [27]: import datetime
In [28]: datetime
Out[28]: <module 'datetime' from '/usr/local/python2.7/lib/python2.7/lib-dynload/datetime.so'>
In [31]: import xyz.Queue
In [32]: xyz.Queue
Out[32]: <module 'xyz.Queue' from '/public/abc/def/ghi/xyz/Queue/__init__.pyc'>
In [33]: sys.path
Out[33]: []
Run Code Online (Sandbox Code Playgroud)

另外如何导入本机模块队列而不是Queue.

我知道重构Queue是这个问题应该得到的解决方案,但它不是现在需要的解决方案.

python ipython python-import python-2.7

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

反转字符串中的每个单词并将单词的开头大写

样本输入:

abc def ghi
Run Code Online (Sandbox Code Playgroud)

样本输出:

Cba Fed Ihg
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

import java.util.Stack;

public class StringRev {
    static String output1 = new String();
    static Stack<Character> stack = new Stack<Character>();
    public static void ReverseString(String input) {
        input = input + " ";
        for (int i = 0; i < input.length(); i++) {
            boolean cap = true;
            if (input.charAt(i) == ' ') {
                while (!stack.isEmpty()) {
                    if (cap) {
                        char c = stack.pop().charValue();
                        c = Character.toUpperCase(c);
                        output1 = output1 + c;
                        cap = false; …
Run Code Online (Sandbox Code Playgroud)

java arrays string reverse

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

这个单例实现线程是否安全 - 检查代码

我有一个数据库连接的类实现.现在,这不是标准的SQL数据库.

我需要知道以下是否是一个好的实现,如果不是 - 为什么.

我需要一个带参数的单例类,这就是我设计的方法.

class Connection 
{
    private string param1;
    private string param2;
    private static readonly IList<Connection> connections = new List<Connection>();
    private Connection()
    {
        //Prevent instantiation
    }

    private Connection(string param1, string param2)
    {
        this.param1 = param1;
        this.param2 = param2;
    }

    public static Connection getInstance(string param1, string param2)
    { 
        foreach(Connection c in connections)
        {
            if(c.param1 = param1 && c.param2 == param2)
                return c;
        }
        Connection new_conn = new Connection(param1, param2);
        connections.Add(new_conn);
        return new_conn;
    }
}
Run Code Online (Sandbox Code Playgroud)

它将使用如下:

Connection c = Connection.getInstance(abc, …
Run Code Online (Sandbox Code Playgroud)

c# singleton design-patterns thread-safety

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

在C#中将字符串一行转换为List <string>

这是我面临的一个相当简单但令人讨厌的问题.

我的应用程序中有很多地方可以使用一个或多个字符串......所以说.我默认使用了List of string.

但每次我有一个字符串,我这样做:

List<string> myList = new List<string>();
myList.Add(myString);
Run Code Online (Sandbox Code Playgroud)

简单myString.ToList()不起作用,因为它转换为字符列表而不是具有一个字符串的列表.是否有一种有效的一线方式来做到这一点?

c# string list

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

Android:ParcelFileDescriptor"createpipe"方法64KB错误

我有一个使用ContentProvider类的应用程序.在openFile方法中,我需要能够解码文件并作为数据流返回.所以我决定使用内置管道.

问题是如果我使用createPipe方法,我只能写入64KB.之后我无法将数据写入管道.另请注意,在数据完全解码并写入管道之前,我无法读取.

package com.aujas.html.viewer.content;
public class LocalFileContentProvider extends ContentProvider {

private static final String URI_PREFIX = "content://com.aujas.html.viewer.localfile.dec/";
public static File file;
public String filename;
public ParcelFileDescriptor[] parcels;

public static String constructUri(String url) {
    String editString = url.replaceAll("%20", " ");
    int n = editString.length();
    String uri = editString.substring(5, n - 1);
    Log.d("URI", uri);
    return URI_PREFIX + uri + "\"";
}

public ParcelFileDescriptor openFile(Uri uri, String mode) {

    Log.d("OPEN", uri.getPath());
    return parcels[0];

}

@Override
public boolean onCreate() {
    return true;
}

@Override …
Run Code Online (Sandbox Code Playgroud)

android pipe parcelable android-contentprovider

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