【发布时间】:2014-01-17 13:41:25
【问题描述】:
我想知道是否有人有在 NopCommerce 中制作自定义任务的经验。
我需要创建一个任务,将每天最畅销的产品列在首位。我知道 NopCommerce 有“畅销书”,其中最畅销的产品显示在主页上。也许我可以把任务交给畅销书类/控制器?
有人知道这是怎么回事吗?
谢谢
/克里斯
【问题讨论】:
标签: c# asp.net-mvc scheduled-tasks nopcommerce
我想知道是否有人有在 NopCommerce 中制作自定义任务的经验。
我需要创建一个任务,将每天最畅销的产品列在首位。我知道 NopCommerce 有“畅销书”,其中最畅销的产品显示在主页上。也许我可以把任务交给畅销书类/控制器?
有人知道这是怎么回事吗?
谢谢
/克里斯
【问题讨论】:
标签: c# asp.net-mvc scheduled-tasks nopcommerce
谈到NopCommerce 中的BestSeller 逻辑,OrderReportService 中有一个方法,在Catalog 控制器的HomepageBestSellers 动作中调用如下
_orderReportService.BestSellersReport(.........
创建自定义任务:->
您只需要在ScheduleTask 表中再创建一个条目。
例如
ID: 10
Name: Task Name
Seconds:100
Type:Nop.Services.Messages.BestSellers, Nop.Services
Enabled:1
StopOnError:0
现在在路径Nop.Services\Messages 的项目中,您需要创建与数据库中指定名称相同的类,在上述情况下为“BestSellers”。现在在您创建的类中编写如下方法
public partial class BestSellers : ITask
{
public void Main()
{
//Your implementation to perform task goes here
}
}
现在这个方法将在每 100 秒后调用一次,因为我在数据库中指定了 100 in seconds' 字段
希望对你有帮助!
注意:您可以在 Nop.Service 中的任何位置创建此类。但该路径应与数据库指定的路径匹配。
【讨论】:
Nop.Service 之外的某个地方创建了一个任务。它就像一个魅力。我的任务类在Nop.Plugin.Shop.SpecialCart.SendLogTask.cs我刚刚设置Type:Nop.Plugin.Shop.SpecialCart.SendLogTask,Nop.Services它工作正常。