我正在.Net 上开发一个 mvc 应用程序,它的扩展部分包含一个功能,可以将内容发布到不同的社交网络平台,如 Facebook、twitter 等。简而言之,它实际上是在不同的网络上自动发布指定的时间间隔和指定的时间。问题是发帖部分必须始终在后台匿名运行,与真实网站的状态没有任何联系,因此它可以随时检查时间/间隔和帖子。
目前我的控制器有一个递归函数,主要部分看起来像下面的代码,但就像在 mvc 中发生的那样,这个函数通过来自客户端浏览器的 url 调用启动,并且在调用之后浏览器进入等待状态,因为这个函数保持递归运行,直到浏览器在指定的无响应时间后取消请求。
当然这种行为并不理想,所以我想要的是:
- 使该功能独立,并在服务器的后台持续运行。
- 有人告诉我,如果我使用 WCF(Windows 通信基础)使其成为服务等工作,它会解决我的问题吗?我还没有 WCF,但如果能解决问题,我可以试一试。
- 还有其他方法可以实现吗?
代码:
while (status == "1")
{
if (totalRows > 0)
{
for (int i = 1; i < totalRows; i++)
{
myPostArray[i] = myPosts.Tables["myPosts"].Rows[i]["Postmsg"].ToString();
//…
//Post to the platform through respected API
//…
System.Threading.Thread.Sleep(3000000000);
}
status = true;
} else if (myPosts.Tables[0].Rows.Count == 0)
{
status = false;
}
TheRepeater();