小编vvv*_*vvv的帖子

React Intercept组件卸载(功能和类组件)

当React卸载Component时,无论是基于组件还是基于组件,我都需要始终进行拦截.FunctionalClass

这是我的情况:

function observe(component) {
  const p = component.type.prototype;
  const delegate = p.componentWillUnmount || function noop() {};

  if(!delegate.__decorated) {
    p.componentWillUnmount = function() {
      console.log('I am going to be unmounted');

      return delegate.apply(this, arguments);
    }

    p.componentWillUnmount.__decorated = true;
  }

  return component;
}

class Comp extends React.Component {

  render() {

    return (<h1>Hello World</h1>);
  }
}

class App extends React.Component {

  render() {
    const active = this.state && this.state.active;
    const toggle = () => this.setState({
      active: !active,
    });

    return ( …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

13
推荐指数
1
解决办法
1861
查看次数

如何触发计划的Spring批处理作业?

我希望能够使用REST控制器开始工作,然后在作业启动时,它应该按计划运行,直到我再次使用REST停止它.

所以这是我的控制器:

@RestController
public class LauncherController {

    @Autowired
    JobLauncher jobLauncher;

    @Autowired
    Job job;

    @RequestMapping("/launch")
    public String launch() throws Exception {
             ...
            jobLauncher.run(job, jobParameters);
    }
Run Code Online (Sandbox Code Playgroud)

这是Batch conf的一部分:

@Configuration
@EnableBatchProcessing
@EnableScheduling
public class BatchConfiguration {

    @Autowired
    public JobBuilderFactory jobBuilderFactory;

    @Autowired
    public StepBuilderFactory stepBuilderFactory;

    @Scheduled(cron = "0/5 * * * * ?")
    @Bean
    public Job job() {
        return jobBuilderFactory.get("job")
                .incrementer(new RunIdIncrementer())
                .flow(step1())
                .end()
                .build();
    }

    @Bean
    public Step step1() {
        return stepBuilderFactory.get("step1")
                .<Person, Person> chunk(10)
                .reader(reader())
                .processor(processor())
                .writer(writer())
                .build();
    }
Run Code Online (Sandbox Code Playgroud)

我还设置了属性spring.batch.job.enabled = false,因为我不想在Spring …

java spring spring-mvc spring-batch spring-boot

10
推荐指数
2
解决办法
2万
查看次数

Spark2 无法将数据帧写入镶木地板配置单元表:HiveFileFormat`。它与指定的格式“ParquetFileFormat”不匹配

我正在尝试将数据框保存在表配置单元中。

在 spark 1.6 中它可以工作,但是在迁移到 2.2.0 之后它不再工作了。

这是代码:

blocs
      .toDF()
      .repartition($"col1", $"col2", $"col3", $"col4")
      .write
      .format("parquet")
      .mode(saveMode)
      .partitionBy("col1", "col2", "col3", "col4")
      .saveAsTable("db".tbl)
Run Code Online (Sandbox Code Playgroud)

现有表 project_bsc_dhr.bloc_views 的格式为HiveFileFormat. 它与指定的格式不匹配ParquetFileFormat。; org.apache.spark.sql.AnalysisException: 现有表 project_bsc_dhr.bloc_views 的格式是HiveFileFormat. 它与指定的格式不匹配ParquetFileFormat。;

hive apache-spark parquet apache-spark-2.0

9
推荐指数
1
解决办法
9691
查看次数

定义参考透明度和确定性函数之间有什么区别?

参考透明度(维基百科):

如果表达式可以替换为其值而不改变程序的行为(换句话说,产生在相同输入上具有相同效果和输出的程序),则表示该表达式是引用透明的.

而且(了解一些Erlang):

对于同一参数始终返回相同结果的函数称为参照透明度

确定性函数(MSDN):

确定性函数在使用一组特定输入值调用时始终返回相同的结果.

如果我们谈论确定性功能,我们是指参考透明度?如果我们谈论参考透明度,我们的意思是确定性函数?

computer-science functional-programming

7
推荐指数
2
解决办法
451
查看次数

d3强制定向布局 - 链接距离优先级

在d3中使用强制定向布局,如何使链接距离成为优先级,同时仍然保持良好的图形布局?

如果我指定动态链接距离,但保留默认费用,我的图形距离会被充电函数变形一点,并且不再是准确的距离:

在此输入图像描述

但是,如果我删除了费用,图表看起来像这样:

在此输入图像描述

任何建议赞赏!

javascript graph distance d3.js d3-force-directed

7
推荐指数
1
解决办法
1617
查看次数

如何使用Java Stream API(groupingBy collector)对列表中的值进行分组?

我有Entry对象列表.Entry是一个:

class Entry {
   private final Date date;
   private final String value;

   // constructor
   // getters
}
Run Code Online (Sandbox Code Playgroud)

我需要在白天对这些条目进行分组.例如,

2011-03-21 09:00 VALUE1
2011-03-21 09:00 VALUE2
2011-03-22 14:00 VALUE3
2011-03-22 16:00 VALUE4
2011-03-21 16:00 VALUE5
Run Code Online (Sandbox Code Playgroud)

应分组:

2011-03-21
    VALUE1
    VALUE2
    VALUE5

2011-03-22
    VALUE3
    VALUE4
Run Code Online (Sandbox Code Playgroud)

我想得到一个Map<Date, List<Entry>>.如何使用Stream API(groupingBy collector)获取此信息?

我的尝试如下:

final Map<Date, List<Entry>> entries =
        list.stream().collect(Collectors.groupingBy(request -> {
        final Calendar ogirinal = Calendar.getInstance();
        ogirinal.setTime(request.getDate());

        final Calendar cal = Calendar.getInstance();
        cal.set(Calendar.DAY_OF_MONTH, ogirinal.get(Calendar.DAY_OF_MONTH));
        cal.set(Calendar.MONTH, ogirinal.get(Calendar.MONTH));
        cal.set(Calendar.YEAR, ogirinal.get(Calendar.YEAR)); …
Run Code Online (Sandbox Code Playgroud)

java datetime date java-stream java-date

7
推荐指数
2
解决办法
1421
查看次数

如何测试创建目录的函数?

如何在 Python 中测试创建目录的函数?你能举一个例子make_directory_test()函数吗?

def make_directory(directory):
    if not os.path.exists(directory):
        os.makedirs(directory)
Run Code Online (Sandbox Code Playgroud)

python testing unit-testing

5
推荐指数
2
解决办法
4915
查看次数

pygame:直到延迟后,显示才会更新

我正在写的程序中有一个错误,我第一次调用该错误:

pygame.display.update()
Run Code Online (Sandbox Code Playgroud)

然后我打电话给:

pygame.time.wait(5000)
Run Code Online (Sandbox Code Playgroud)

我希望程序更新显示,然后等待一段时间后再继续。但是由于某种原因,显示仅在等待时间之后更新,而不是在等待时间之后更新。

我已附加了一些示例代码来演示正在发生的事情:

import pygame
pygame.init()

white = (255,255,255)
black = (0,0,0)
green = (0,255,0)

screenSize = screenWidth, screenHeight = 200, 200
screen = pygame.display.set_mode(screenSize)
screen.fill(white)

pygame.draw.rect(screen, black,((50,50),(50,50)))
pygame.display.update()
pygame.time.wait(5000)

pygame.quit()
raise SystemExit
Run Code Online (Sandbox Code Playgroud)

这将创建一个带有黑框的白色窗口,然后等待5秒钟然后退出。

但是,它实际上所做的是创建一个窗口,等待5秒钟,然后显示一会儿,然后立即退出。

有谁知道如何解决这个问题?

python pygame python-3.x

5
推荐指数
1
解决办法
141
查看次数

Python3 中的列表索引是如何工作的?

假设我们有

a = [1, 2, 3]

每当我在列表中使用索引时,例如0, 12在这种情况下,python3 如何通过知道索引来检索元素?除了索引之外,列表中的每个元素是否有任何特定的地址?

python indexing list python-3.x

5
推荐指数
1
解决办法
1750
查看次数

Python 64 位?“在 win32 上”是什么意思?

团队,

我将重新雇用你们所有人。我对输入“python”一词后直接显示的横幅有疑问。激活交互式 shell 时会出现此横幅。

下面可以看到我当前安装中的横幅。我注意到在该行的末尾有几个词,on win32。这是在“键入“help”,...”行之前。这个“on win32”是否意味着Python运行在32位操作系统上?我检查了 Windows 安装的控制面板,发现操作系统是 64 位。我刚刚安装了 64 位的 Python,因此我相当确定 Python 应用程序是 64 位的。

Python 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:25:58) [MSC v.1500 64 bit (AM
D64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
Run Code Online (Sandbox Code Playgroud)

另外,我执行了以下命令,这显然意味着我正在运行 64 位版本的 Python。请看代码如下:

>>> import platform
>>> platform.architecture()
('64bit', 'WindowsPE')
Run Code Online (Sandbox Code Playgroud)

python python-2.7

5
推荐指数
0
解决办法
4223
查看次数