我使用修改过的webapp.RequestHandler处理我的应用程序中的请求:
class MyRequestHandler(webapp.RequestHandler):
"""
Request handler with some facilities like user.
self.out is the dictionary to pass to templates
"""
def __init__(self, *args, **kwargs):
super(MyRequestHandler, self).__init__(*args, **kwargs)
self.out = {
'user': users.get_current_user(),
'logout_url': users.create_logout_url(self.request.uri)
}
def render(self, template_name):
"""
Shortcut to render templates
"""
self.response.out.write(template.render(template_name, self.out))
class DeviceList(MyRequestHandler):
def get(self):
self.out['devices'] = GPSDevice.all().fetch(1000)
self.render('templates/device_list.html')
Run Code Online (Sandbox Code Playgroud)
但我得到一个例外:
line 28, in __init__
self.out['logout_url'] = users.create_logout_url(self.request.uri)
AttributeError: 'DeviceList' object has no attribute 'request'
Run Code Online (Sandbox Code Playgroud)
当导致异常的代码移出__init__一切都很好时:
class MyRequestHandler(webapp.RequestHandler):
"""
Request handler with some facilities …Run Code Online (Sandbox Code Playgroud) 我有一个服务运行,它定期检查文件夹中的文件,然后处理它.(读取它,提取数据,将其存储在sql中)
所以我在测试盒上运行它,预计需要更长的时间.该文件有160万行,它在6小时后仍在运行(然后我回家了).
问题是它运行的盒子现在已经完全瘫痪了 - 远程桌面超时了所以我甚至无法停止它来停止这个过程,或者附加一个调试器来看看有多远等等.它坚固地使用90%+ CPU,以及所有其他正在运行的服务或应用程序
代码是(从内存中,可能无法编译):
List<ItemDTO> items = new List<ItemDTO>();
using (StreamReader sr = fileInfo.OpenText())
{
while (!sr.EndOfFile)
{
string line = sr.ReadLine()
try {
string s = line.Substring(0,8);
double y = Double.Parse(line.Substring(8,7));
//If the item isnt already in the collection, add it.
if (items.Find(delegate(ItemDTO i) { return (i.Item == s); }) == null)
items.Add(new ItemDTO(s,y));
}
catch { /*Crash*/ }
}
return items;
}
Run Code Online (Sandbox Code Playgroud)
- 所以我正在努力改进代码(任何提示赞赏).
但它仍然可能是一个缓慢的事情,这是好的,我没有问题,它花了很长时间,只要它不杀死我的服务器.
所以我想要你的好人是:1)我的代码是否可靠地未经优化?2)我可以限制代码块可能使用的CPU数量吗?
干杯全都
当你执行"for ... in"循环时,它将迭代一个Dictionary例如.我想知道如何跟踪内部以及如何访问它?
我认为Dictionary类存储对第一个项目的引用,但我想访问它并检查但我无法弄清楚如何.这有点高级,请问有什么想法吗?
谢谢,鲁迪
我在一本书中读到了这一点:
//: C03:SimpleCast.cpp
int main() {
int b = 200;
unsigned long a = (unsigned long int)b;
} ///:~
Run Code Online (Sandbox Code Playgroud)
"强制转换是强大的,但它可能会引起麻烦,因为在某些情况下它会迫使编译器将数据视为(例如)比实际更大,因此它会在内存中占用更多空间;这会占用其他数据这通常在投射指针时发生,而不是在制作如上所示的简单投射时."
现在请你提供一个示例,其中转换指针可以践踏其他数据?
我目前正在试验谷歌的控制容器的反转.我以前只为我的应用程序使用的任何服务(数据库,活动目录)提供了单例.现在我重构了代码:所有依赖项都作为构造函数的参数给出.到现在为止还挺好.现在最困难的部分是图形用户界面.我遇到了这个问题:我有一个包装在ProductFrame中的产品表(JTable).我将依赖项作为参数(EditProductDialog).
@Inject
public ProductFrame(EditProductDialog editProductDialog) {
// ...
}
// ...
@Inject
public EditProductDialog(DBProductController productController, Product product) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
问题是guice无法知道我在表中选择了什么产品,因此无法知道EditProductDialog中要注入的内容.
依赖注入是非常病毒的(如果我修改一个类来使用依赖注入我也需要修改它与之交互的所有其他类)所以我的问题是我应该直接实例化EditProductDialog吗?但是我必须手动将DBProductController传递给EditProductDialog,我还需要将它传递给ProductFrame,所有这些归结为根本不使用依赖注入.
或者我的设计存在缺陷,因此我无法真正使该项目适应依赖性注射?
给我一些关于如何使用依赖注入和图形用户界面的示例.在因特网上找到的所有示例都是非常简单的示例,您可以使用一些具有依赖注入的服务(主要是数据库).
java user-interface dependency-injection inversion-of-control guice
我试图总结 Excel VBA 中的一列,但是因为有空格,我得到 0 作为总和。
Dim rExternalTotal As Range , dExternalTotal as Double
Set rExternalTotal = Range(rReportData.Offset(0, 0), rReportData.Offset(261, 0).End(xlUp))
dExternalTotal = Application.WorksheetFunction.Sum(rExternalTotal)
Run Code Online (Sandbox Code Playgroud)
dExternalTotal 始终为零。我无法删除工作表上的空格。任何人都可以建议一种以编程方式进行求和的方法吗?
我在启用了多选的WinForm中有一个ListBox.
所选项目似乎存储在一个对象中,如何获取它们的值?
我正在使用ASP.net.我的网站托管在testIIS根目录下的子文件夹中.所以default.aspx的url是http://localhost/test/Default.aspx.从default.aspx,我想使用Reponse.Redirect()相对路径重定向到同一网站内的另一个网址,http://localhost/test/whatever.
我试过了
Response.Redirect("/whatever");
Run Code Online (Sandbox Code Playgroud)
和
Response.Redirect("~/whatever");
Run Code Online (Sandbox Code Playgroud)
他们都重定向到http://localhost/whatever.请注意,该Redirect方法使用 http://localhost而不是http://localhost/test/作为基本URL.
有任何想法吗?
谢谢.
largestDivisible :: (Integral a) => a
largestDivisible = head (filter p [100000,99999..])
where p x = x `mod` 3829 == 0
Run Code Online (Sandbox Code Playgroud)
如果px等于True,
确实
head (filter p [100000,99999..])
Run Code Online (Sandbox Code Playgroud)
成为
head (filter True)
Run Code Online (Sandbox Code Playgroud)
?
哪些列表正在过滤True?
在运行此代码时,p和x的值是多少?
有没有一种简单的方法来获得两组的相对补充?也许使用LINQ?
我必须找到A相对于B的相对称赞.A和B都是类型的,HashSet<T>但我认为算法可以更通用(IEnumerable<T>甚至ISet<T>)?
我可以在VB.NET或C#中使用解决方案.
c# ×3
.net ×1
actionscript ×1
asp.net ×1
background ×1
c++ ×1
excel ×1
explicit ×1
guice ×1
haskell ×1
java ×1
linq ×1
listbox ×1
optimization ×1
performance ×1
set ×1
types ×1
vb.net ×1
vba ×1
winforms ×1