我有一个 Perl 脚本,它由最终用户单击 Web 浏览器中的快捷方式激活。该脚本遍历哈希值列表。当每次迭代将一行插入数据库时,它会向浏览器输出一些 HTML。环境为 Perl、Windows Server 2003 标准版、IIS。我最近迁移到 Apache。传统上迭代次数很少,大多数用户在页面加载完成后关闭浏览器。现在,我们有一个案例,其中有多达 5000 次迭代。现在执行这 5000 次迭代需要很长时间(1 分钟~)。那不是问题。问题在于,当用户关闭 Web 浏览器时,Apache 会终止 Perl 脚本,并且我们没有完成将行插入数据库的过程,因为浏览器不会确认最近发送的 html。我在 IIS 下对此进行了测试,在用户关闭 Web 浏览器后,Perl 脚本继续运行并插入所有行。Apache 配置文件中是否有一个设置会强制 Apache 完成运行 Perl 脚本,即使在浏览器关闭并删除套接字后?
这就是我们正在做的:
foreach my $Destination (sort keys %{$self->{_Destinations}}) {
print qq! <td $self->{_bgcolor}>$Destination Queued</td> !;
if ($self->{_Data}->Execute(@params)) {&error}
}
Run Code Online (Sandbox Code Playgroud)
我知道我们应该做所有的数据库插入然后做我们的打印,但这是遗留代码,如果我能让 Apache 在这方面表现得像 IIS 那么我将有时间更彻底地重写这个脚本.
我想从 32 位 Microsoft SQL 2005 环境中分离数据库并将其附加到 64 位 Microsoft SQL 2008 环境。
微软说:
SQL Server 磁盘存储格式在 64 位和 32 位环境中是相同的。因此,附加适用于 32 位和 64 位环境。与在一个环境中运行的服务器实例分离的数据库可以附加到在另一个环境中运行的服务器实例上。
我只是想知道由于数据库是在 32 位环境中创建的,是否会有任何限制?
我应该咬紧牙关在 64 位 SQL 2008 中创建一个新数据库并迁移数据,还是可以摆脱分离和附加?