我必须使用Django的ORM将8000多条记录插入到SQLite数据库中.此操作需要每分钟大约运行一次cronjob.
目前我正在使用for循环迭代所有项目,然后逐个插入它们.
例:
for item in items:
entry = Entry(a1=item.a1, a2=item.a2)
entry.save()
Run Code Online (Sandbox Code Playgroud)
这样做的有效方法是什么?
编辑:两种插入方法之间的一点比较.
没有commit_manually装饰器(11245条记录):
nox@noxdevel marinetraffic]$ time python manage.py insrec
real 1m50.288s
user 0m6.710s
sys 0m23.445s
Run Code Online (Sandbox Code Playgroud)
使用commit_manually decorator(11245条记录):
[nox@noxdevel marinetraffic]$ time python manage.py insrec
real 0m18.464s
user 0m5.433s
sys 0m10.163s
Run Code Online (Sandbox Code Playgroud)
注意:除了插入数据库之外,测试脚本还执行一些其他操作(下载ZIP文件,从ZIP存档中提取XML文件,解析XML文件),因此执行所需的时间不一定代表插入所需的时间记录.
我在维基百科上找到了这段代码.
#include <stdio.h>
int main(void)
{
int c;
while (c = getchar(), c != EOF && c != 'x')
{
switch (c)
{
case '\n':
case '\r':
printf ("Newline\n");
break;
default:
printf ("%c",c);
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我很好奇表达用作while循环的条件:
while (c = getchar(), c != EOF && c != 'x')
Run Code Online (Sandbox Code Playgroud)
它的作用非常明显,但我以前从未见过这种结构.这是特定于while循环吗?如果没有,解析器/编译器如何确定逗号分隔表达式的哪一侧为while循环返回布尔值?
我有一个UIImageView(全帧和矩形),我正在用CGAffineTransform旋转.UIImageView的UIImage填充整个帧.旋转和绘制图像时,边缘会出现明显的锯齿状.有什么我可以做的让它看起来更好吗?显然没有背景消除锯齿.
我正在尝试创建一个包含指针的向量,每个指针指向另一个Cell我使用结构制作的类型的向量.下面的for循环允许我让用户定义指针向量中有多少个元素.这是我的代码:
vector< vector<Cell>* > vEstore(selection);
for (int t=0; t<selection; t++)
{
vEstore[t] = new vector<Cell>;
vEstore[t]->reserve(1000);
}
Run Code Online (Sandbox Code Playgroud)
我想,这给了我一个指向该类型目标向量的指针向量Cell.这编译但我现在正试图push_back进入目标向量,但看不到如何做到这一点.
由于目标向量是Cell类型,它由以下类型组成:
struct Cell
{
unsigned long long lr1;
unsigned int cw2;
};
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何push_back使用2个值到达此目标向量?
我刚在想 ...
binpocket[1]->lr1.push_back(10);
binpocket[1]->cw2.push_back(12);
Run Code Online (Sandbox Code Playgroud)
我认为这会在指示器处取消引用binpocket[1]目标数组值,然后依次寻址每个元素.但它没有编译.
任何人都可以帮助...但这只有一个值,无论如何都不会编译.
...不使用typedef.
我的老板声称他曾经在接受采访时被问过,当他回答时,采访者告诉他他不能使用typedef因为风格很差.
无论如何,他喜欢向人们提出问题只是为了看看他们是否能够做到正确,通常是在新的程序员午餐时间.没有人能做对(特别是没有笔和纸或电脑).我希望下次他试图用它来阻止某人时做好准备>:D
在支持平板电脑的Windows版本中,当编辑控件获得焦点时会出现一个小键盘图标.如果触摸它,会弹出触控键盘.
有没有办法禁用它?如果你有自己的触摸键盘,这是相当不方便的.
我想为代码中的某些编辑控件禁用它,即.我不是在寻找Windows设置.
GIEL
我正在教我的弟弟学习工程学.我向他解释了不同的数据类型实际存储在内存中的方式.我向他解释了签名/无符号数字背后的物流和十进制数字的浮点位.当我告诉他C中的char类型时,我还带他通过ASCII代码系统,以及char也被存储为1字节数.
他问我为什么'A'被给予ascii代码65而不是其他什么?同样,为什么'a'具体代码为97?为什么在大写字母和小写字母之间存在6个ascii代码的差距?我不知道这个.你能帮助我理解这一点吗,因为这也给我带来了很大的好奇心.到目前为止,我从未找到任何讨论过该主题的书.
这背后的原因是什么?ASCII码是否逻辑组织?
我在服务器上有这个bash脚本,每小时运行一次,通过cron.我非常高兴,但现在用户希望能够通过Web界面配置频率.
我不习惯以编程方式操作cron配置,但我不确定其他选项是否更好.
我看到它的方式,我可以:
我该怎么办?
编辑:澄清一下,我担心操纵cron的主要原因是因为它基本上是文本操作而没有验证,如果我搞砸了,我的其他任何cron作业都不会运行.
这是我最终做的事情:
根据stefanw的建议,我在bash脚本的顶部添加了以下行:
if [ ! `cat /home/username/settings/run.freq` = $1 ]; then
exit 0
fi
Run Code Online (Sandbox Code Playgroud)
我设置了以下cron作业:
0 */2 * * * /home/username/scripts/publish.sh 2_hours
@hourly /home/username/scripts/publish.sh 1_hour
*/30 * * * * /home/username/scripts/publish.sh 30_minutes
*/10 * * * * /home/username/scripts/publish.sh 10_minutes
Run Code Online (Sandbox Code Playgroud)
从Web界面,我让用户在这四个选项之间进行选择,并根据用户选择的内容,将字符串2_hours/1_hour/30_minutes/10_minutes写入文件中/home/username/settings/run.freq.
我不喜欢它,但它似乎是最好的选择.
给出这样一个清单:
List<int> intList = new List<int>();
intList.Add(5);
intList.Add(10);
intList.Add(15);
intList.Add(46);
Run Code Online (Sandbox Code Playgroud)
你如何获得列表中最大元素的索引?在这种情况下,它在索引3处.
编辑:遗憾的是标准LINQ没有提供这些功能.