`
guoyunsky
  • 浏览: 860177 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
3d3a22a0-f00f-3227-8d03-d2bbe672af75
Heritrix源码分析
浏览量:207409
Group-logo
SQL的MapReduce...
浏览量:0
社区版块
存档分类
最新评论

国内IT跟国外差的何止是技术?

阅读更多

      本博客属原创文章,欢迎转载!转载请务必注明出处:http://guoyunsky.iteye.com/blog/856551

 

      今天一早收到一封老外的邮件,让我甚是惭愧.

      邮件是之前我提问,关于改了某个开源框架的源代码,实现一个功能.但那个开源框架升级了,我看了下源码,想像老版本那样改下代码来实现我那个功能,貌似很复杂.于是发邮件问了下那个老外.其实很早便知道,老外回答人问题很耐心,而且技术方面回答得也很全面,很系统,很详细.但今天收到的那封邮件,让我更惊讶.

      惊讶之余,一直在反思.于是有了这个话题.国内IT跟国外差的何止是技术?就从回答问题这个角度,我在国内貌似就没碰到多少能够做到这样的人.曾经看到IK(一个中文分词开源框架)的作者,在群内回答别人的问题,小到IDE工具怎么使用,都回答得很详细.让我很是敬佩!

      在国内我也一直没感觉到多少所谓的牛人、高手、大师、专家的存在.有也只是半桶水,我曾经也如此自狂过.买本书,不是抄袭就是翻译的。网上搜点资料,更加转载了N遍.至于找那些牛人大师专家们,更加不知道在东南西北。网上碰到个感觉是牛人的,貌似忙得团团转.有回答也是YES或者NO顶多这种小问题你自己去找点资料看.

     慢慢的也突然被人称作"牛人".很是诧异.就我这水平也成了当年我仰慕又鄙视(鄙视的原因是以上内容)的牛人啦?为了做个当年所谓的好牛人而不是很忙很忙很忙的牛人,于是将一些经验写到博客上,建Q群,回答别人的问题.慢慢的也开始同情起牛人来了.

     一个相同的问题,你可以回答一百、一千遍,但回答一万遍是啥感觉?牛人还真的很忙,任务越来越多,有的还是稀奇古怪的,从来没做过,也从来没想做过.但你是牛人嘛,不得不做.还有就是问问题的,也没经过大脑.很多问题网上一搜遍有.只知道问How,而不知道问Why.更有甚者,问你有没有时间,帮我远程调试下(人数还不少)...

      于是也慢慢的少在自己建的群里说话,QQ平时也是忙碌.到了晚上就干脆隐身...只有碰到有质量的问题(话题)才去忽悠急句.哎,看来,想忽悠也很难啊...

      这里再次重申,我非牛人,真的非牛人,真心话,非客套、表面、官腔...

      我不知道大家会怎么想?我是感觉社会很浮躁.本来该喝静心口服液写代码的我们,却也浮躁了起来.但感觉也是环境所迫!曾经我感慨着说要是写代码不用考虑吃饭的问题那该多好.但那只是一个梦!

      提供工作的,公司八字还没一撇就说将来会上市.你过来,只是待遇低点,但公司前景大大的好,将来会咋的咋的.写代码的,没个几年就说自己咋的咋的,你不开多少价我就不过去.我曾经看到有公司在群里发招聘消息,但第一句通常是什么待遇?一旦是非知名企业发布的,大家你一言我一言,一片质疑声.但换个角度你自己自荐,简历送上去,那家公司又会感觉你是个菜鸟.心里会想有这么牛,还用投简历到我这里吗?google老总都要来三顾茅庐!

      眼下是工作时间,我不知道这里写这对工作没用的博客(对我的公司而言)是不是个杯具!但感觉还是要说一说,任务我会加班完成!

     慢慢的自己写代码也有几年.一直想找个点做下去(我感觉那才是我的出路),却很难,真的很难!技术方面公司非得逼你做这做那,总有弄不完的新东西.其实也不想跳槽,HR眼里咬牙切齿的频繁跳槽!但不是你非礼了我,就是我甩了你!

     有没有一家能让自己把它也当成事业的公司?非得自己创业才是事业?

     那历史就不应该有三顾茅庐!

 

    最后贴上那封邮件.邮件是关于网络爬虫Heritrix的增量抓取.有兴趣的同学可以看下.

    由于Heritrix是一次性抓取,抓取完毕后就结束或者暂停.但这不适合于增量抓取,于是我修改了源代码实现了该功能(让它抓完一次就重新获取种子再去抓取,如此循环下去).但Heritrix升级了,我感觉新特性很强悍,但要在新版本实现该功能,改代码貌似就没这么方便了.于是写了封邮件,请教了下Heritrix的作者。他的回复深深的吸引了我,于是有了这篇文章.下面贴上邮件内容:

      1)我的提问(蹩脚英文别见笑):

     

Hi all,
i know H3.0 can run continous crawl by some config(FetchHistoryProcessor PersistStoreProcessor PersistLoadProcessor )。but there is a problem:when crawl finished,Heritrix will pause or exit;but i want to let it crawl again.for example:reload the seeds.
i have modified Heritrix 1.14.3's code,like this:
class:
org.archive.crawler.frontier.WorkQueueFrontier
function:
public CrawlURI next() throws InterruptedException, EndedException {
while (true) { // loop left only by explicit return or exception
 
// modify by me,add these codes.
// if there are no urls to get,let it to reload seeds 
synchronized (this) {
if (this.controller.getFrontier().isEmpty()) {
loadSeeds();
}
}
 
long now = System.currentTimeMillis();
// Do common checks for pause, terminate, bandwidth-hold
preNext(now);
 
if one thread can not get url from this function,these code what add by me will reload the seeds and by synchronized,so that the othre threads who want to get url  will wait for that thread reload seeds finished,and they can get url too.
 
it worked well.and any body can give me some advices?and how about Heritrix3.0?
2)Heritrix的作者的回复:
This is an interesting use case.
I would not recommend hooking this reload into the frontier's next()
method, in H1 or H3, as that's a very central place. (If it's working
for you in H1, that's OK, but I would still think there may be timing
risks doing it there.)
Ideally you'd want to hook off some event which happens when the
frontier is empty, but before the crawl commits to a full stop. I can't
think of an existing method/event that exactly meets that need, but it
seems like a good idea, and I'll look into the possibility of adding a
clean, convenient place for this in H3.
In the meantime, some ideas would be:
• look at the ReschedulingProcessor as an example of how to use a new
CrawlURI property, 'rescheduleTime', to force a URI to be revisited at a
specific time in the future. While this will not allow your seeds to be
visited at the moment the frontier is empty, you could use it to ensure
your seeds are revisited every N days/hours/minutes/seconds/etc.
• look at the CrawlLimitEnforcer as an example of an optional component
that watches ApplicationEvents from the crawl. Events to potentially
listen for include CrawlStateEvent, CrawlURIDispositionEvent, and
StatSnapshotEvent. By either noticing when the crawl is *almost* done,
or noticing the pause-at-finish, your component could then re-enqueue
your seeds at that time (and unpause the crawl if necessary).
Each of these techniques should allow your desired effect by adding a
new optional Processor or listening bean, rather than editing core
crawler code.
Hope this helps,
- Gordon @ IA
再附上IK作者的博客:
 linliangyi2007 (林良益)  博客: http://linliangyi2007.iteye.com/ 
 

更多技术文章、感悟、分享、勾搭,请用微信扫描:

1
0
分享到:
评论
1 楼 store88 2011-01-01  
直接load不好吧

就算seed更新策略還沒到就更新,效果不好

相关推荐

    被盗的,又何止是梵高

    被盗的,又何止是梵高

    初中语文文摘社会蟑螂何止是“小强”

    初中语文文摘社会蟑螂何止是“小强”

    2022考研数学何止十年真题陆小马功钟浩.pdf

    2022考研数学何止十年真题陆小马功钟浩.pdf

    解开IP通信技术符码

    今天,IP通信技术何止与人们的生活相关,它简直就是人们生活质量的保证,它日益成为医疗、交通、金融服务、城市管理等领域的重要基础。2005 年5 月24 日,Gartner 召开了 Future in Review系列座谈,展望VoIP的未来...

    [自己动手写操作系统].于渊.无水印影印版.part1.rar

    [自己动手写操作系统].于渊.无水印影印版.part1.rar nothing to say 相信搜到他的人都明白!何止经典只有?

    初中语文 说明文阅读理解分类练习 蟑螂,何止是“小强” 新人教版

    【知识点】 1. **生物学分类**:蟑螂属于蜚蠊目,是一类昆虫,包括数千种不同的种类,如美洲大蠊、澳洲大蠊、日本大蠊和德国小蠊。 2. **历史背景**:蟑螂的起源非常古老,早在3亿年前的石炭纪就已经存在,历经了...

    ChatGPT大火之际,医疗界应未雨绸缪以变应变

    昨天晚上,一个久违的朋友谈起医生IP打造,我还强调要当心GPT技术对媒体平台的受众迁移影响,今天细想一下,其实GPT技术对医疗影响的何止是媒体平台? 正文之前,有必要科普一下,GPT与Chat-GPT是不同的。 GPT是三个...

    何止一毫米:对智能家居的思考.pdf

    首先,智能硬件必须能够无缝嵌入用户的生活场景中,这要求智能硬件能够提供真正的技术附加值或以极低的价格吸引用户。此外,产品的设计和推广应能够使产品完全融入到用户现有的生活环境中。其次,交互性是智能硬件的...

    阿里巴巴Java性能调优实战(2021-2022华山版)+Java架构核心宝典+性能优化手册100技巧.rar

    快了何止100%?需要的朋友可下载试试! 众所周知性能调优可以使系统稳定,用户体验更佳,甚至在比较大的系统中,还能帮公司节约资源。 但是在项目的开始阶段,没有必要过早地介入性能优化,只需在编码的时候保证...

    电源研发经验23条总结.docx

    (何止二张图 片,毫无意义) 问题4 你是不是知道开关电源可以工作在1.5HZ。(你觉 değ 这样谈有必要,工作没有什么不可以,纯熟钻牛角尖,做技术切记钻牛角尖,那你能谈谈为什么普遍电源不工作在1.5HZ,说这个才...

    图片放大.zip

    首先是平台,这里主要是指显卡,因为使用了神经网络运算,仅支持cuDNN和CUDA,所以强烈推荐使用Nvidia显卡,虽然CPU也可以进行运算,但速度相差何止百倍。而cuDNN相比CUDA,也有数倍之差,所以可以说是N卡福利了,...

    2022零基础提前学作业3(周洋鑫)陆小马功钟浩.pdf

    根据提供的文件信息,这份文档似乎是关于考研数学的学习资料,特别是涉及到极限计算的主题。下面将详细说明文件内容中出现的知识点。 1. 未定式极限:在极限计算中,常见的未定式包括 0/0,∞/∞,0*∞,∞-∞,0^0...

    十年考研数学一真题及答案

    本人精心整理十年考研数学真题及答案解析,予人玫瑰,手有余香。

    [瞻仰的意思]瞻仰我的先生.docx

    在这个过程中,老师那句充满爱意的"考语要是你须要,先生乐意给的何止一句勉励?",不仅让作者感受到老师的宽宏大量,更让读者感受到一个教师无私奉献的伟大品质。 通过作者与恩师之间的情感交流,我们能够清晰地...

    在ChatGPT面前,连老板都要失业了

    现在何止设计师要没工作了,模特小姐姐居然也因为这玩意儿丢了工作了。你看过去啊,很多电商公司每个月都要请女模特啊来穿上他们公司的衣服,拍好多张照片在网上宣传,对不对? 现在好了,这个ChatGPT能生成各种美女...

    很稀奇的小软件:复制对话框

    试想,当你面对一个不理解的对话框,原本可能需要逐字逐句地手动输入到搜索引擎中以查找信息,但现在只需一个简单的操作,便能直接复制对话框中的文本内容,立即进行搜索或分享,效率提升了何止数倍。 技术层面来看...

    XX超市供应商管理手册.doc

    市场上的供应商何止千家,一个城市的综合超市潜在供应商可能上万家,全国范围内更是上百万家,如何开发最适合北京华联综合超市发展的供应商,并与他们发展互利互惠的商业关系,是每一个地区公司采购部的重大战略任务...

    3D图片制作软件

    在IT领域,3D图片制作软件是用于创建、编辑和渲染三维图像的工具。这些软件广泛应用于游戏开发、建筑设计、产品设计...学习和掌握3D制作软件,不仅可以创作出令人惊叹的艺术作品,也是IT行业中一项实用且有价值的技术。

    国旗下讲话稿——母亲.docx

    母亲的付出如此巨大,以至于我们难以想象,而这种付出又何止存在于电影之中。 当母亲病倒,无力工作,甚至遭受村民误解与虐待时,是婉丽的坚强和勇敢让母亲看到了希望。婉丽用她的行动,告诉世界:母爱可以激发我们...

    Clover_3.0.406.zip

    要掌握功能强大,操作简单的标签页,只需记住Ctrl+T新开页面,Ctrl+W关闭页面,Ctrl+Tab切换页面,工作效率提高何止一倍! 操作系统无缝集成 Clover 通过插件的形式集成到 Windows Explorer,保留您通常的使用...

Global site tag (gtag.js) - Google Analytics