Angular 6现在有注入式提供程序,这是注入服务的新推荐方式,除了我在使用扩展其他服务的服务时遇到问题,它工作得非常好.举个例子,假设我有
@Injectable({
providedIn: 'root'
})
export class ParentAppService { ... }
@Injectable({
providedIn: 'root'
})
export class ChildAppService extends ParentAppService { ... }
Run Code Online (Sandbox Code Playgroud)
问题在于,无论我在组件中要求什么,都会始终注入父类.
所以,如果你要求
constructor(private childAppService: ChildAppService) { ... }
Run Code Online (Sandbox Code Playgroud)
您仍将获得ParentAppService的实例,这不是预期的.
一个非常简单的解决方法是以旧式方式在模块中注册提供程序,这样可行:
@NgModule({
providers: [AppService, ChildAppService]
})
Run Code Online (Sandbox Code Playgroud)
但这基本上是旧的做事方式,而且没有像新提供的注册流程那样更好的树木震动和清洁测试的好处.
所以我的问题是,做到这一点的正确方法是什么?是否有更好的方法来注册提供程序,以便我可以获得所需的行为(可能以某种方式指定提供者令牌?).
我已经设置了一个超级简单的stackblitz示例来显示正在发生的事情.
https://stackblitz.com/edit/angular-lacyab?file=src%2Fapp%2Fapp.component.ts
你会注意到它说"你好我的APP服务!" 即使该组件要求提供儿童服务.如果在app模块中我们以旧方式注册提供者(请参阅注释掉的代码),突然之间会注入正确的提供者.
谢谢你的帮助!
我正在编写一个基于Java的Kafka Consumer应用程序.我正在为我的应用程序使用kafka-clients,Spring Kafka和Spring启动.虽然Spring启动让我轻松编写Kafka使用者(没有真正编写ConcurrentKafkaListenerContainerFactory,ConsumerFactory等),但我希望能够为这些使用者定义/定制一些属性.但是,我找不到使用Spring启动的简单方法.例如:我有兴趣设置的一些属性是 -
ConsumerConfig.MAX_PARTITION_FETCH_BYTES_CONFIG
ConsumerConfig.PARTITION_ASSIGNMENT_STRATEGY_CONFIG
我接过一看春天开机前定义的属性在这里.
此外,基于前面一个问题在这里,我想设置对消费者的并发性,但无法找到一个配置,为application.properties驱动的方式做到这一点使用Spring启动.
一种显而易见的方法是ConcurrentKafkaListenerContainerFactory, ConsumerFactory
在我的Spring Context中再次定义类并从那里开始工作.我想了解是否有更简洁的方法,特别是因为我使用的是Spring Boot.
版本 -
java apache-kafka spring-boot kafka-consumer-api spring-kafka
我使用approxSimilarityJoin来找到两组之间的Jaccard相似性.
val dfA = hashtoseq.toDF("id","values") //values is a set of string
val hashingTF = new HashingTF().setInputCol("values").setOutputCol("features").setNumFeatures(1048576)
val featurizedData = hashingTF.transform(dfA)
val mh = new MinHashLSH()
.setNumHashTables(3)
.setInputCol("features")
.setOutputCol("hashes")
val model = mh.fit(featurizedData)
val dffilter = model.approxSimilarityJoin(featurizedData, featurizedData, 0.45)
Run Code Online (Sandbox Code Playgroud)
我正在为16 GB数据集写入大约270 GB的内容,甚至在服务器上也需要超过3小时(3个工作节点,每个节点有64 GB RAM和64个内核).
我经历了以下链接: -
[ LSH Spark永远停留在approxSimilarityJoin()函数,但它对我不起作用.
我也经历过databricks网站,他们将运行时与数据大小进行了比较.对于MB中的数据,即436 MB,大约相似度需要25分钟.对于GB中的数据集,它的创建问题.[ https://databricks.com/blog/2017/05/09/detecting-abuse-scale-locality-sensitive-hashing-uber-engineering.html].
我们可以通过在代码/服务器配置中进行一些更改或者使用approxSimilarityJoin函数来减少这种随机写入吗?还有其他有效的方法可以在大型数据集上计算Jaccard相似度吗?
使用MesosExecutor时,是否可以为DAG的每个运营商指定资源(CPU,内存,GPU,磁盘空间)?
我知道您可以为任务的资源指定全局值.
例如,我有几个CPU很昂贵的运营商而其他运营商没有.我想在第一次执行一次,但许多与非CPU昂贵的并行执行.
有没有办法创建一个完全空的Binding
对象以供使用eval
?
根据文档,只有该Kernel#binding
方法可以创建新的绑定。我尝试过这样的事情:
empty = binding
Run Code Online (Sandbox Code Playgroud)
但是,该绑定将empty
其自身包含在其局部变量中,以及稍后在代码中分配的相同范围内的任何其他局部变量。
我发现这个常量TOPLEVEL_BINDING
是一个空的绑定,它足以满足我的直接目的。但可能并不总是如此。
有什么办法可以创建一个全新的、完全空的吗Binding
?
下面这段代码中,代码的self._for_write
含义是什么?
def create(self, **kwargs):
"""
Create a new object with the given kwargs, saving it to the database
and returning the created object.
"""
obj = self.model(**kwargs)
self._for_write = True
obj.save(force_insert=True, using=self.db)
return obj
Run Code Online (Sandbox Code Playgroud) 这里描述了一个类似的问题,但是我的症状有所不同,并且那里的所有步骤似乎都不起作用。这里的建议也不起作用。
我正在尝试使用SourceTree克隆属于我所属的github组织的私有存储库。我拥有查看和提交存储库的完整权限,登录后可以在线查看它,并且可以通过命令行以及通过github桌面应用程序进行克隆。它仅在SourceTree中失败。
此外,它不是坏凭证,因为我可以使用带有我的github凭证的SourceTree克隆,提交并推送到我在github上的其他非私有存储库。
在“克隆存储库”对话框中,输入源URL,看起来像这样:
https://github.com/MyOrgName/reponame.git
Run Code Online (Sandbox Code Playgroud)
我关闭了该字段,并填充了“目标路径”和“名称”字段,但是在对话框的底部是一个带有此错误的黄色感叹号:
This is not a valid source path / URL
Run Code Online (Sandbox Code Playgroud)
如果单击错误消息,它将弹出“详细信息”对话框,其中显示以下内容(由于某些原因两次):
remote: Repository not found.
fatal: repository 'https://github.com/MyOrgName/reponame.git/' not found
remote: Repository not found.
fatal: repository 'https://github.com/MyOrgName/reponame.git/' not found
Run Code Online (Sandbox Code Playgroud)
我还尝试通过将我的用户名添加到url来进行此操作,如下所示:
https://myusername@github.com/MyOrgName/reponame.git
Run Code Online (Sandbox Code Playgroud)
但那里也没有运气。
我有一个数据帧,其中pic_code值可能重复.如果重复,我想为最接近其mpe_wgt的pic_code设置变量"keep"为"t".
例如,第二pic_code将"keep"设置为t,因为它具有最接近其对应的"mpe_weight"的"权重".我的代码导致"保持"为所有人保持'f'并且"差异"为所有人保持"100".
df['keep']='f'
df['diff']=100
def cln_df(data):
if pd.unique(data['mpe_wgt']).shape==(1,):
data['keep'][0:1]='t'
elif pd.unique(data['mpe_wgt']).shape!=(1,):
data['diff']=abs(data['weight']-(data['mpe_wgt']/100))
data['keep'][data['diff']==min(data['diff'])]='t'
return data
df=df.groupby('pic_code').apply(cln_df)
Run Code Online (Sandbox Code Playgroud)
df之前
pic_code weight mpe_wgt keep diff
1234 45 34 f 100
1234 32 23 f 100
45344 54 35 f 100
234 76 98 f 100
234 65 12 f 100
Run Code Online (Sandbox Code Playgroud)
df输出应该是
pic_code weight mpe_wgt keep diff
1234 45 34 f 11
1234 32 23 t 9
45344 54 35 t 100
234 76 98 t 22
234 65 12 f 53
Run Code Online (Sandbox Code Playgroud)
我是python的新手,所以请保持解决方案尽可能简单.我真的想让我的方法工作所以请不要太花哨.在此先感谢您的帮助.
this.validate_label_population();
this.validate_title_prefix();
this.validate_title_suffix();
this.executeGitCommentCreation();
Run Code Online (Sandbox Code Playgroud)
我在构造函数中执行以下函数.前3/4是异步函数:
例:
async validate_title_prefix() {
console.log('validate_title_prefix not implemented');
}
Run Code Online (Sandbox Code Playgroud)
我想this.executeGitCommentCreation();
在之前运行之后执行最后一次.做这个的最好方式是什么?我应该在前3名前面等待,还是使用某种Promise.all?
什么是 React Native FontSize 单位?px还是pt?我想用 pt 设置 fontSize。我怎样才能做到这一点?
我知道 1em = 12 pt = 16 px。但我必须将字体大小设置为 13pt。我怎样才能做到这一点?
javascript ×2
python ×2
airflow ×1
angular ×1
apache-kafka ×1
apache-spark ×1
dataframe ×1
django ×1
es6-promise ×1
git ×1
github ×1
java ×1
lsh ×1
mesos ×1
pandas ×1
promise ×1
react-native ×1
ruby ×1
scala ×1
spring-boot ×1
spring-kafka ×1