我正在使用带有capistrano的delayed_job,并希望使用'script/delayed_job start'启动网络应用程序时启动delayed_job.这样,capistrano可以在部署时重新启动它.如果服务器重新启动,那么我的delayed_jobs应该启动项目.
我怎样才能做到这一点?我应该在环境文件中还是作为初始化程序进行此操作?
现在所有PC上的RAM通常都在千兆字节,我是否应该花时间寻找可能在我的程序中的所有小的(不增长的)内存泄漏?我说的是那些可能小于64字节的漏洞,甚至是一堆只有4字节的漏洞.
其中一些很难识别,因为它们不在我自己的代码中,但可能在第三方代码或开发工具的代码中,我甚至可能无法直接访问源代码.在这些情况下,它将涉及与这些产品的供应商进行长时间的沟通.
我在SO上看到了第一个内存泄漏问题:内存泄漏是否正常?而目前排名第一的答案是:现在投了85次,是:不.
但在这里,我谈的是小泄漏,可能需要进行大量的调试,研究和沟通才能追踪.
我只谈论一个简单的桌面应用程序.我知道在服务器上运行的应用程序必须尽可能紧密.
所以我真正要问的问题是,如果我知道我有一个泄漏的程序,每次运行时说40个字节,那有关系吗?
单滴!http://www.beholdgenealogy.com/img/single_drip.jpg
另请参阅我的后续问题:哪些操作系统会释放内存泄漏?
后记:我刚刚为我的程序开发购买了EurekaLog.
我发现了 EurekaLog的作者Alexander(他应该知道这些事情)的一篇优秀文章,关于捕获内存泄漏.在那篇文章中,亚历山大非常简洁地陈述了我的问题的答案:
虽然应用程序中的任何错误总是很糟糕,但是存在一些错误类型,这些错误在某些环境中是不可见的.例如,内存或资源泄漏错误在客户端计算机上相对无害,并且可能在服务器上致命.
我正在为即将开发的网站创建一个即将推出的页面,并为用户添加一个选项以输入他们的电子邮件地址,以便我们可以在网站启动时通过电子邮件发送.我该怎么做呢?
我正试图从数据库中提取一些二进制数据并将其写入pdf文件.在大多数情况下,这是在游泳,但偶尔的数据行似乎抛出一个特定的错误 -
超时已过期.操作完成之前经过的超时时间或服务器没有响应.
请记住,这只发生在少数行上,并且从不随机.相同的行总是抛出异常.我不确定为什么会抛出异常,但我可以跳过导致问题并继续前进的行.然而,我的问题是,当我捕获异常然后尝试移动到下一行时,我遇到另一个异常 -
InvalidOperationException - 读取器关闭时无效尝试调用Read.
这是否意味着读者一旦遇到异常就会自动关闭?如何在没有任何戏剧的情况下继续前进到下一行?
while (sdrReader.Read()) // Second exception happens here
{
try
{
byte[] byteData = new Byte[(sdrReader.GetBytes(0, 0, null, 0, int.MaxValue))]; // first exception happens here
sdrReader.GetBytes(0, 0, byteData, 0, byteData.Length);
string strOutputFileName = sdrReader.GetInt32(1).ToString() + ".pdf";
msMemoryStreams = new MemoryStream();
msMemoryStreams.Write(byteData, 0, byteData.Length);
byte[] byteArray = msMemoryStreams.ToArray();
msMemoryStreams.Flush();
msMemoryStreams.Close();
writeByteArrayToFile(byteData, txtFilesPath.Text + "\\" + strOutputFileName);
}
catch (Exception e)
{
Logger.Write("Document failed to convert: " + e.Message);
}
}
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪,根据要求 -
at …Run Code Online (Sandbox Code Playgroud) 我有两个型号:
Novel has_many :pages
Page belongs_to :novel
Run Code Online (Sandbox Code Playgroud)
我想根据页数列出流行的小说.从本质上讲,我希望从此查询的结果中加载Novel模型:
select p.novel_id, count(*) as count
from pages p
GROUP BY p.novel_id
ORDER BY count DESC
Run Code Online (Sandbox Code Playgroud)
我确信使用named_scope在Rails 2.3中有一些可爱的方法,但我无法让它工作.另外,如果它确实有效,它会变慢狗吗?
我已经考虑过将page_count保留在Novel上,但这似乎违反了某些事情(惯例,规范化,我的灵魂).
我的问题可能是其他转换问题的重复,但我觉得我的不同.
这里... [简化示例].
public class DataWrapper<T>
{
public T DataValue{ get; set; }
public DataWrapper(T value)
{
DataValue = value;
}
public static explicit operator DataWrapper<T> (T value)
{
return new DataWrapper<T>(value);
}
public static implicit operator T(DataWrapper<T> data)
{
return data.DataValue;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,在我的ViewModel中:
public class ViewModel
{
public DataWrapper<string> FirstName { get;set; }
public DataWrapper<string> LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在XAML中:
<TextBlock Text="{Binding FirstName}" />
<TextBlock Text="{Binding LastName}" />
Run Code Online (Sandbox Code Playgroud)
我的问题是,这会有效吗?将WPF绑定调用Implicit和Explicit转换器在我的DataWrapper<T>类,而不是需要实现一个IValueConverter …
我目前有以下属性装饰其中一个动作方法.
[Authorize(Roles = "Admin")]
public ActionResult DoAdminTask()
{
//Do something
return View();
}
Run Code Online (Sandbox Code Playgroud)
目前,只有Admin角色的用户可以调用此方法,但这会更改.无论如何,我可以在配置文件中存储授权角色列表,而不是将其硬编码到源代码中吗?
编辑:角色将随着时间的推移而改变,超过1个角色将需要访问权限.即任一角色中的用户或角色B可以访问.
此代码将从文本文件中读取一行:
set file = CreateObject("Scripting.FileSystemObject").OpenTextFile("c:\number.txt", 1)
text = file.ReadLine
MsgBox text
Run Code Online (Sandbox Code Playgroud)
如何从同一个文件中一行接一行地重复读取?我猜,我应该在这里使用一个循环,对吧?我需要它在第一次迭代时从文件中读取第一行,在第二次迭代时读取第二行,在第三次迭代时读取第三行,依此类推直到所有行都被读取.我该怎么做?
重要的补充:我需要代码逐一操作每一行 - 而不是一次完成!
android ×1
asp.net-mvc ×1
c# ×1
c++ ×1
capistrano ×1
command-line ×1
converter ×1
css ×1
data-binding ×1
delayed-job ×1
email ×1
file-io ×1
forms ×1
fso ×1
html ×1
java ×1
list ×1
memory-leaks ×1
newline ×1
sql ×1
wpf ×1
xml ×1