因此,我开发了一个系统,只要用户尝试保存并且数据库连接不存在,就会将数据库插入/更新命令保存到文本文件中.文件中的每一行都是一个插入或更新命令.但是,我似乎遇到了一个问题.
有些文件似乎不想通过第一行读取.所有这些都有一个共同点 - 因为数据库中有与第一个插入对应的数据,我跳过它,因为输入后不允许更改该信息.但是,当我尝试读取下一行时,它会启动,因为该readLine()
命令返回null(这会导致其余代码按预期失败).
我尝试while(!ready() Thread.sleep(500))
在下一个之前添加一个readLine()
,但它只是无限期地坐在那里(我让它在杀死JVM之前大约需要10分钟).我还尝试过只添加一个else块来检查数据库中是否存在数据,该数据暂停2秒,但问题仍然存在.
请注意,任何以不存在的数据插入开头的文件都可以正常工作.
有没有人对如何解决这个问题有任何想法?
编辑:这是从顶部到等待准备的代码
private static boolean loadExistingData()
{
File dir = new File(Configuration.DBOutputDataLocation);
// Attempt to create the directory in case it doesn't exist.
if(!dir.exists())
{
if(!dir.mkdir())
{
return false;
}
}
String[] existingFiles = dir.list();
System.out.println(existingFiles.length);
if(existingFiles == null || existingFiles.length == 0)
{
return false;
}
else
{
BufferedReader fileReader = null;
DatabaseAccessor dba = DatabaseAccessor.getInstance();
// Pull out the files, submit each one.
for(int i …
Run Code Online (Sandbox Code Playgroud) 有人注意到在输入jQuery.append,jQuery.trigger等时resharper 6挂起了.
有什么解决方案吗?
我在Windows 7 64位上遇到Visual Studio 2010的问题.经过一段时间的工作后,VS开始消耗约50%的CPU,并且UI响应速度变慢.当我关闭VS然后UI消失但进程停留.
当我忘记在一天结束时杀死那些挂起的进程时,我将最终得到许多devenv.exe进程.
我已重新安装Visual Studio并重新安装Windows并最终遇到同样的问题...不会改变任何东西.请帮忙.:/
假设我正在使用MATLAB IDE并且碰巧在我的工作空间中有一些非常大的对象(例如500k +元素的数组).现在,假设我愚蠢地偶然双击其中一个非常大的变量,这会触发对数组编辑器的加载.不幸的是,对于这么大的数组,MATLAB只是挂起.
我尝试过CTRL + C,CTRL + BREAK,CTRL + D,但似乎没有人能够中断IDE的行为.我知道我可以强制matlab退出,但是首先将所有这些变量读入工作区需要花费很多时间,而且我可能在编辑器窗口中有未保存的更改等.
当我使用的简单HTTPS服务器com.sun.net.httpserver.HttpServer
通过这个PHP代理(使用curl)调用时,它工作正常.但是,一旦我不使用代理但更改我的Web表单以便浏览器直接将其请求发送到服务器,服务器就会变得不稳定,有时会停止响应.然后客户端将等待响应,直到超时.这个问题难以重现,有时会在实时系统中发生.所有这些都是通过HTTPS,在非标准端口(目前为8081).我的服务器返回XML.
我在服务器不再响应时看到的堆栈跟踪(通过" kill -QUIT [pid]
"):
"Thread-2" prio=10 tid=0x0000000017fc4800 nid=0x1c2b runnable
[0x00002ba5ec97c000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:218)
at sun.nio.ch.IOUtil.read(IOUtil.java:191)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:359)
- locked <0x00000000fd1e4b98> (a java.lang.Object)
at sun.net.httpserver.SSLStreams$EngineWrapper.recvAndUnwrap(SSLStreams.java:334)
- locked <0x00000000fd1e4c58> (a java.lang.Object)
at sun.net.httpserver.SSLStreams.recvData(SSLStreams.java:409)
at sun.net.httpserver.SSLStreams$InputStream.read(SSLStreams.java:524)
at sun.net.httpserver.SSLStreams$InputStream.read(SSLStreams.java:593)
at sun.net.httpserver.Request.readLine(Request.java:84)
at sun.net.httpserver.Request.<init>(Request.java:54)
at sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:529)
at sun.net.httpserver.ServerImpl$DefaultExecutor.execute(ServerImpl.java:156)
at sun.net.httpserver.ServerImpl$Dispatcher.handle(ServerImpl.java:424)
at sun.net.httpserver.ServerImpl$Dispatcher.run(ServerImpl.java:389)
at java.lang.Thread.run(Thread.java:722)
Run Code Online (Sandbox Code Playgroud)
我已经尝试过:发送一个Connection: close
http标题 - 没有帮助.编写一个使用多个线程并行查询服务器的Java测试用例 - 工作正常.
所以问题是:浏览器与我的代理有什么不同,为什么这会使我的服务器进程挂起?
来源:这里是HttpHandler的源代码,这里是使用该处理程序的服务器的源代码
背景:我希望任何人都可以从他们的网页上使用我的REST服务,而无需安装代理(需要绕过Javascript跨源策略).为此,服务器发送Access-Control-Allow-Origin: * …
我认为我的问题类似于:
.NET 4.0和可怕的OnUserPreferenceChanged Hang
我也看了看:
http://ikriv.com/en/prog/info/dotnet/MysteriousHang.html#BeginInvokeDance
我删除了我们的启动画面.
我还尝试添加建议的代码:Microsoft.Win32.SystemEvents.UserPreferenceChanged + = delegate {}; 到我们的main()方法.
我正在寻找有关如何排除故障的一些想法和信息.
对于我们的main()方法,我们启动一个windowmanager类,它是一个使用Application.Run的表单.它只是任务栏中的一个图标(我们不显示窗口).
每当我们启动一个对象时,我们都有一个后台线程,它创建一个表单,然后执行Application.Run(form)
在Application.Run(form)form.IsHandleCreated = false时.
我使用MysteriousHang网站上的冰箱应用程序.(我修改它以继续在循环中发送更改通知).
我应该如何处理创建和运行新表单?是否在后台线程上创建表单是否重要,即使它的句柄尚未创建?
全部,
我创造 :
public static final HttpClient DEFAULT_HTTPCLIENT = HttpClients
.createDefault();
for(int i=0 ; i<5; i++){
DEFAULT_HTTPCLIENT.execute(requests[i]);
}
Run Code Online (Sandbox Code Playgroud)
但是当循环到i = 2时,这意味着只执行前两个请求,直到第三个请求,客户端将挂起并且看起来像死循环.
我推荐一些材料,我得到的可能是Http Thread Pool配置有限.但我知道这个问题的标准解决方案是什么?由于我想随时发送任何请求,但我不希望每次都创建新的HttpClient.那么你对这个问题有什么好的和标准的建议吗?
在我调试这个问题之后,我发现它在HttpClient下面是代码块:PoolingHttpClientConnectionManager - > leaseConnection - > entry = future.get(timeout,tunit);
protected HttpClientConnection leaseConnection(
final Future<CPoolEntry> future,
final long timeout,
final TimeUnit tunit) throws InterruptedException, ExecutionException, ConnectionPoolTimeoutException {
final CPoolEntry entry;
try {
entry = future.get(timeout, tunit);
if (entry == null || future.isCancelled()) {
throw new InterruptedException();
}
Asserts.check(entry.getConnection() != null, "Pool entry with no connection");
if …
Run Code Online (Sandbox Code Playgroud) 所以我有这个Bash脚本:
#!/bin/bash
PID=`ps -u ...`
if [ "$PID" = "" ]; then
echo $(date) Server off: not backing up
exit
else
echo "say Server backup in 10 seconds..." >> fifo
sleep 10
STARTTIME="$(date +%s)"
echo nosave >> fifo
echo savenow >> fifo
tail -n 3 -f server.log | while read line
do
if echo $line | grep -q 'save complete'; then
echo $(date) Backing up...
OF="./backups/backup $(date +%Y-%m-%d\ %H:%M:%S).tar.gz"
tar -czhf "$OF" data
echo autosave >> fifo
echo "$(date) Backup …
Run Code Online (Sandbox Code Playgroud) 最近,我不能让我的Matplotlib图显示出来.我有一个非常简单的脚本:
import matplotlib.pyplot as plt
plt.plot([1,2,3])
Run Code Online (Sandbox Code Playgroud)
但没有任何东西出现过.如果我包括该行
plt.show()
Run Code Online (Sandbox Code Playgroud)
然后我的Python进程挂起.
在我的~/.config/matplotlib/matplotlibrc
文件中我有
backend : MacOSX
interactive : True
Run Code Online (Sandbox Code Playgroud)
问这个问题我有点尴尬.我多年来一直是Matplotlib用户,从未遇到过这个问题.我不知道从哪里开始解决这个问题.救命!
我正在使用Matplotlib 2.0.0和Anaconda的Python 3.5.2.
我正在尝试更新两个链接TextBox
es.我在一个中禁用事件然后使用例如SendKeys::Send("A");
首先给它焦点发送击键:
texBox2->Focus();
texBox2->KeyDown -= gcnew KeyEventHandler(this, &Form1::texBox2_KeyDown);
SendKeys::Send("A");
texBox2->KeyDown += gcnew KeyEventHandler(this, &Form1::texBox2_KeyDown);
Run Code Online (Sandbox Code Playgroud)
它几乎可以工作,但完全是心理而不是重复这个角色(我不敢去检查哪个确切的键因为我疯狂地消防溢出)直到我按下control-alt-del.没有其他键有任何影响,鼠标冻结.但任务经理奇迹般地恢复了我的控制权,我不会停止或杀死任何东西.
任何人都可以建议吗?调试器挂起在该SendKeys::Send("A");
语句上.